include file: CPPXREF 126 CLL Comdeck: CPPXREF -------------------------------------------------- CPPXREF.2 CLL CPPXREF.3 CLL Purpose: Holds PARAMETERs describing structure of PP_XREF file, CPPXREF.4 CLL and some values for valid entries. CPPXREF.5 CLL CPPXREF.6 CLL Author Dr T Johns CPPXREF.7 CLL CPPXREF.8 CLL Model Modification history from model version 3.0: CPPXREF.9 CLL version Date CPPXREF.10 CLL 3.3 26/10/93 M. Carter. Part of an extensive mod that: MC261093.3 CLL 1.Removes the limit on primary STASH item numbers. MC261093.4 CLL 2.Removes the assumption that (section,item) MC261093.5 CLL defines the sub-model. MC261093.6 CLL 3.Thus allows for user-prognostics. MC261093.7 CLL Add a PPXREF record for model number. MC261093.8 CLL 4.0 26/07/95 T.Johns. Add codes for real/int/log data types. GTJ0F400.1 CLL 3.5 10/3/94 Sub-Models project: GSS1F305.7 CLL List of PPXREF addressing codes augmented, in order GSS1F305.8 CLL to include all of the pre_STASH master information GSS1F305.9 CLL in the new PPXREF file. GSS1F305.10 CLL PPXREF_CODELEN increased to 38. GSS1F305.11 CLL PPXREF_IDLEN deleted - no longer relevant. GSS1F305.12 CLL S.J.Swarbrick GSS1F305.13 CLL 4.1 June 96 Wave model parameters included. GSS3F401.7 CLL ppx_ address parameters adjusted to allow for GSS3F401.8 CLL reading option code as 4x5 digit groups. GSS3F401.9 CLL S.J.Swarbrick GSS3F401.10 CLL CPPXREF.11 CLL Logical components covered: C40 CPPXREF.12 CLL CPPXREF.13 C----------------------------------------------------------------------- CPPXREF.14 C Primary file record definition CPPXREF.15 INTEGER CPPXREF.16 * PPXREF_IDLEN,PPXREF_CHARLEN,PPXREF_CODELEN CPPXREF.17 * ,PPXREF_PACK_PROFS GSS1F305.14 PARAMETER( CPPXREF.19 * PPXREF_IDLEN=2, ! length of id in a record CPPXREF.20 ! WARNING: PPXREF_CHARLEN must be an exact multiple of 4 GSS1F305.15 ! to avoid overwriting GSS1F305.16 * PPXREF_CHARLEN=36, ! total length of characters CPPXREF.21 * PPXREF_PACK_PROFS=10, ! number of packing profiles GSS1F305.17 * PPXREF_CODELEN=40) ! total length of codes GSS3F401.11 C Derived file record sizes CPPXREF.24 INTEGER CPPXREF.25 * PPX_CHARWORD,PPX_RECORDLEN CPPXREF.26 PARAMETER( CPPXREF.27 C Assume that an integer is at least 4 bytes long. CPPXREF.28 C This wastes some space and memory on 8 byte machines. CPPXREF.29 * PPX_CHARWORD=((PPXREF_CHARLEN+3)/4), ! i.e., ppx_charword=9 GSS1F305.19 * PPX_RECORDLEN= GSS1F305.20 * PPX_CHARWORD+PPXREF_CODELEN) ! read buffer record len CPPXREF.32 C CPPXREF.33 C----------------------------------------------------------------------- CPPXREF.34 C Addressing codes within PPXREF GSS1F305.21 INTEGER CPPXREF.36 & ppx_model_number , GSS1F305.22 & ppx_section_number ,ppx_item_number , GSS1F305.23 & ppx_version_mask ,ppx_space_code , GSS1F305.24 & ppx_timavail_code ,ppx_grid_type , GSS1F305.25 & ppx_lv_code ,ppx_lb_code , GSS1F305.26 & ppx_lt_code ,ppx_lev_flag , GSS1F305.27 & ppx_opt_code ,ppx_pt_code , GSS1F305.28 & ppx_pf_code ,ppx_pl_code , GSS1F305.29 & ppx_ptr_code ,ppx_lbvc_code , GSS1F305.30 & ppx_dump_packing ,ppx_rotate_code , GSS1F305.31 & ppx_field_code ,ppx_user_code , GSS1F305.32 & ppx_meto8_levelcode,ppx_meto8_fieldcode, GSS1F305.33 & ppx_cf_levelcode ,ppx_cf_fieldcode , GSS1F305.34 & ppx_base_level ,ppx_top_level , GSS1F305.35 & ppx_ref_LBVC_code ,ppx_data_type , GSS1F305.36 & ppx_packing_acc ,ppx_pack_acc GSS1F305.37 PARAMETER( GSS1F305.38 & ppx_model_number = 1, ! Model number address GSS1F305.39 & ppx_section_number = 2, ! Section number address GSS1F305.40 & ppx_item_number = 3, ! Item number address GSS1F305.41 & ppx_version_mask = 4, ! Version mask address GSS1F305.42 & ppx_space_code = 5, ! Space code address GSS1F305.43 & ppx_timavail_code = 6, ! Time availability code address GSS1F305.44 & ppx_grid_type = 7, ! Grid type code address GSS1F305.45 & ppx_lv_code = 8, ! Level type code address GSS1F305.46 & ppx_lb_code = 9, ! First level code address GSS1F305.47 & ppx_lt_code =10, ! Last level code address GSS1F305.48 & ppx_lev_flag =11, ! Level compression flag address GSS1F305.49 & ppx_opt_code =12, ! Sectional option code address GSS1F305.50 & ppx_pt_code =16, ! Pseudo dimension type address GSS3F401.12 & ppx_pf_code =17, ! First pseudo dim code address GSS3F401.13 & ppx_pl_code =18, ! Last pseudo dim code address GSS3F401.14 & ppx_ptr_code =19, ! Section 0 point-back code addres GSS3F401.15 & ppx_dump_packing =20, ! Dump packing code address GSS3F401.16 & ppx_lbvc_code =21, ! PP LBVC code address GSS3F401.17 & ppx_rotate_code =22, ! Rotation code address GSS3F401.18 & ppx_field_code =23, ! PP field code address GSS3F401.19 & ppx_user_code =24, ! User code address GSS3F401.20 & ppx_meto8_levelcode=25, ! CF level code address GSS3F401.21 & ppx_meto8_fieldcode=26, ! CF field code address GSS3F401.22 & ppx_cf_levelcode =25, GSS3F401.23 & ppx_cf_fieldcode =26, GSS3F401.24 & ppx_base_level =27, ! Base level code address GSS3F401.25 & ppx_top_level =28, ! Top level code address GSS3F401.26 & ppx_ref_lbvc_code =29, ! Ref level LBVC code address GSS3F401.27 & ppx_data_type =30, ! Data type code address GSS3F401.28 & ppx_packing_acc =31, ! Packing accuracy code address (1 GSS3F401.29 & ppx_pack_acc =31) GSS3F401.30 C GSS1F305.70 C Valid grid type codes CPPXREF.42 INTEGER CPPXREF.43 & ppx_atm_nonstd,ppx_atm_tall,ppx_atm_tland,ppx_atm_tsea, CPPXREF.44 & ppx_atm_uall,ppx_atm_uland,ppx_atm_usea,ppx_atm_compressed, CPPXREF.45 & ppx_atm_ozone,ppx_atm_tzonal,ppx_atm_uzonal,ppx_atm_rim, CPPXREF.46 & ppx_atm_tmerid,ppx_atm_umerid,ppx_atm_scalar, CPPXREF.47 & ppx_atm_cuall,ppx_atm_cvall, CPPXREF.48 & ppx_ocn_nonstd,ppx_ocn_tall,ppx_ocn_tcomp,ppx_ocn_tfield, CPPXREF.49 & ppx_ocn_uall,ppx_ocn_ucomp,ppx_ocn_ufield, CPPXREF.50 & ppx_ocn_tzonal,ppx_ocn_uzonal,ppx_ocn_tmerid, CPPXREF.51 & ppx_ocn_umerid,ppx_ocn_scalar,ppx_ocn_rim, CPPXREF.52 & ppx_ocn_cuall,ppx_ocn_cvall, GSS3F401.31 & ppx_wam_all,ppx_wam_sea,ppx_wam_rim GSS3F401.32 C Valid rotation type codes CPPXREF.54 INTEGER CPPXREF.55 & ppx_unrotated,ppx_elf_rotated CPPXREF.56 C Valid level type codes CPPXREF.57 INTEGER CPPXREF.58 & ppx_full_level,ppx_half_level CPPXREF.59 C Valid data type codes GTJ0F400.2 INTEGER GTJ0F400.3 & ppx_type_real,ppx_type_int,ppx_type_log GTJ0F400.4 C Valid meto8 level type codes CPPXREF.60 INTEGER CPPXREF.61 & ppx_meto8_surf CPPXREF.62 C Valid dump packing codes CPPXREF.63 INTEGER CPPXREF.64 & ppx_pack_off,ppx_pack_32,ppx_pack_wgdos,ppx_pack_cfi1 CPPXREF.65 C CPPXREF.66 C MC261093.11 C MC261093.12 C CPPXREF.82 PARAMETER( CPPXREF.83 & ppx_atm_nonstd=0, ! Non-standard atmos grid CPPXREF.84 & ppx_atm_tall=1, ! All T points (atmos) CPPXREF.85 & ppx_atm_tland=2, ! Land-only T points (atmos) CPPXREF.86 & ppx_atm_tsea=3, ! Sea-only T points (atmos) CPPXREF.87 & ppx_atm_tzonal=4, ! Zonal field at T points (atmos) CPPXREF.88 & ppx_atm_tmerid=5, ! Merid field at T points (atmos) CPPXREF.89 & ppx_atm_uall=11, ! All u points (atmos) CPPXREF.90 & ppx_atm_uland=12, ! Land-only u points (atmos) CPPXREF.91 & ppx_atm_usea=13, ! Sea-only u points (atmos) CPPXREF.92 & ppx_atm_uzonal=14, ! Zonal field at u points (atmos) CPPXREF.93 & ppx_atm_umerid=15, ! Merid field at u points (atmos) CPPXREF.94 & ppx_atm_scalar=17, ! Scalar (atmos) CPPXREF.95 & ppx_atm_cuall=18, ! All C-grid (u) points (atmos) CPPXREF.96 & ppx_atm_cvall=19, ! All C-grid (v) points (atmos) CPPXREF.97 & ppx_atm_compressed=21, ! Compressed land points (atmos) CPPXREF.98 & ppx_atm_ozone=22, ! Field on ozone grid (atmos) CPPXREF.99 & ppx_atm_rim=25, ! Rim type field (LAM BCs atmos) CPPXREF.100 & ppx_ocn_nonstd=30, ! Non-standard ocean grid CPPXREF.101 & ppx_ocn_tcomp=31, ! Compressed T points (ocean) CPPXREF.102 & ppx_ocn_ucomp=32, ! Compressed u points (ocean) CPPXREF.103 & ppx_ocn_tall=36, ! All T points incl. cyclic (ocean) CPPXREF.104 & ppx_ocn_uall=37, ! All u points incl. cyclic (ocean) CPPXREF.105 & ppx_ocn_cuall=38, ! All C-grid (u) points (ocean) CPPXREF.106 & ppx_ocn_cvall=39, ! All C-grid (v) points (ocean) CPPXREF.107 & ppx_ocn_tfield=41, ! All non-cyclic T points (ocean) CPPXREF.108 & ppx_ocn_ufield=42, ! All non-cyclic u points (ocean) CPPXREF.109 & ppx_ocn_tzonal=43, ! Zonal n-c field at T points(ocean) CPPXREF.110 & ppx_ocn_uzonal=44, ! Zonal n-c field at u points(ocean) CPPXREF.111 & ppx_ocn_tmerid=45, ! Merid n-c field at T points(ocean) CPPXREF.112 & ppx_ocn_umerid=46, ! Merid n-c field at u points(ocean) CPPXREF.113 & ppx_ocn_scalar=47, ! Scalar (ocean) CPPXREF.114 & ppx_ocn_rim=51, ! Rim type field (LAM BCs ocean) GSS3F401.33 & ppx_wam_all=60, ! All points (wave model) GSS3F401.34 & ppx_wam_sea=62, ! Sea points only (wave model) GSS3F401.35 & ppx_wam_rim=65) ! Rim type field (LAM BCs wave) GSS3F401.36 C CPPXREF.116 PARAMETER( CPPXREF.117 & ppx_unrotated=0, ! Unrotated output field CPPXREF.118 & ppx_elf_rotated=1) ! Rotated ELF field CPPXREF.119 C CPPXREF.120 PARAMETER( CPPXREF.121 & ppx_full_level=1, ! Model full level CPPXREF.122 & ppx_half_level=2) ! Model half level CPPXREF.123 C GTJ0F400.5 PARAMETER( GTJ0F400.6 & ppx_type_real=1, ! Real data type GTJ0F400.7 & ppx_type_int=2, ! Integer data type GTJ0F400.8 & ppx_type_log=3) ! Logical data type GTJ0F400.9 C CPPXREF.124 PARAMETER( CPPXREF.125 & ppx_meto8_surf=9999) ! MetO8 surface type code CPPXREF.126 C CPPXREF.127 PARAMETER( CPPXREF.128 & ppx_pack_off=0, ! Field not packed (ie. 64 bit) CPPXREF.129 & ppx_pack_32=-1, ! Field packed to 32 bit in dump CPPXREF.130 & ppx_pack_wgdos=1, ! Field packed by WGDOS method CPPXREF.131 & ppx_pack_cfi1=11) ! Field packed using CFI1 (ocean) CPPXREF.132 C CPPXREF.133