1 SUBROUTINE TRANS_INQ(KRESOL,KSPEC,KSPEC2,KSPEC2G,KSPEC2MX,KNUMP,&
 
    2                     &KGPTOT,KGPTOTG,KGPTOTMX,KGPTOTL,&
 
    3                     &KMYMS,KASM0,KUMPP,KPOSSP,KPTRMS,KALLMS,KDIM0G,&
 
    4                     &KFRSTLAT,KLSTLAT,KFRSTLOFF,KPTRLAT,&
 
    5                     &KPTRFRSTLAT,KPTRLSTLAT,KPTRFLOFF,KSTA,KONL,&
 
    8                     &PMU,PGW,PRPNM,KLEI3,KSPOLEGL,KPMS)
 
   10 !**** *TRANS_INQ* - Extract information from the transform 
package 
   14 !     Interface routine for extracting information from the T.P.
 
   19 !     Explicit arguments : All arguments are optional.
 
   20 !     -------------------- 
 
   21 !     KRESOL   - resolution tag for which info is required ,default is the
 
   22 !                first defined resulution (input)
 
   25 !     KSPEC    - number of complex spectral coefficients on this PE
 
   27 !     KSPEC2G  - global KSPEC2
 
   28 !     KSPEC2MX - maximun KSPEC2 among all PEs
 
   29 !     KNUMP    - Number of spectral waves handled by this PE
 
   30 !     KGPTOT   - Total number of grid columns on this PE
 
   31 !     KGPTOTG  - Total number of grid columns on the Globe
 
   32 !     KGPTOTMX - Maximum number of grid columns on any of the PEs
 
   33 !     KGPTOTL  - Number of grid columns one each PE (dimension NPRGPNS:NPRGPEW)
 
   34 !     KMYMS    - This PEs spectral zonal wavenumbers
 
   35 !     KASM0    - Address in a spectral array of (m, n=m)
 
   36 !     KUMPP    - No. of wave numbers each wave set is responsible for
 
   37 !     KPOSSP   - Defines partitioning of global spectral fields among PEs
 
   38 !     KPTRMS   - Pointer to the first wave number of a given a-set
 
   39 !     KALLMS   - Wave numbers for all wave-set concatenated together 
 
   40 !                to give all wave numbers in wave-set order
 
   41 !     KDIM0G   - Defines partitioning of global spectral fields among PEs
 
   44 !     KFRSTLAT    - First latitude of each a-set in grid-point space
 
   45 !     KLSTTLAT    - Last latitude of each a-set in grid-point space
 
   46 !     KFRSTLOFF   - Offset for first lat of own a-set in grid-point space
 
   47 !     KPTRLAT     - Pointer to the start of each latitude
 
   48 !     KPTRFRSTLAT - Pointer to the first latitude of each a-set in 
 
   49 !                   NSTA and NONL arrays
 
   50 !     KPTRLSTLAT  - Pointer to the last latitude of each a-set in
 
   51 !                   NSTA and NONL arrays
 
   52 !     KPTRFLOFF   - Offset for pointer to the first latitude of own a-set
 
   53 !                   NSTA and NONL arrays, i.e. nptrfrstlat(myseta)-1
 
   54 !     KSTA        - Position of first grid column for the latitudes on a 
 
   55 !                   processor. The information is available for all processors.
 
   56 !                   The b-sets are distinguished by the last dimension of 
 
   57 !                   nsta().The latitude band for each a-set is addressed by 
 
   58 !                   nptrfrstlat(jaset),nptrlstlat(jaset), and 
 
   59 !                   nptrfloff=nptrfrstlat(myseta) on this processors a-set.
 
   60 !                   Each split latitude has two entries in nsta(,:) which 
 
   61 !                   necessitates the rather complex addressing of nsta(,:)
 
   62 !                   and the overdimensioning of nsta by nprgpns.
 
   63 !     KONL        - Number of grid columns for the latitudes on a processor.
 
   64 !                   Similar to nsta() in data structure.
 
   65 !     LDSPLITLAT  - TRUE if latitude is split in grid point space over 
 
   69 !     KULTPP   - number of latitudes for which each a-set is calculating 
 
   71 !     KPTRLS   - pointer to first global latitude of each a-set for which
 
   72 !                it performs the Fourier calculations
 
   75 !     PMU      - sin(Gaussian latitudes)
 
   76 !     PGW      - Gaussian weights
 
   77 !     PRPNM    - Legendre polynomials
 
   78 !     KLEI3    - First dimension of Legendre polynomials
 
   79 !     KSPOLEGL - Second dimension of Legendre polynomials
 
   80 !     KPMS     - Adress for legendre polynomial for given M (NSMAX)
 
   85 !     Externals.  SET_RESOL - set resolution
 
   95 !        M. Hortal : 2001-03-05 Dimensions of the Legendre polynomials
 
   97 !     ------------------------------------------------------------------
 
   99 USE PARKIND1  ,ONLY : JPIM     ,JPRB
 
  104 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(IN)  :: KRESOL
 
  106 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC
 
  107 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC2
 
  108 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC2G
 
  109 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC2MX
 
  110 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KNUMP
 
  111 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOT
 
  112 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOTG
 
  113 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOTMX
 
  114 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOTL(:,:)
 
  115 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KFRSTLOFF
 
  116 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRFLOFF
 
  118 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KMYMS(:)
 
  119 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KASM0(0:)
 
  120 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KUMPP(:)
 
  121 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPOSSP(:)
 
  122 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRMS(:)
 
  123 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KALLMS(:)
 
  124 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KDIM0G(0:)
 
  125 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KFRSTLAT(:)
 
  126 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KLSTLAT(:)
 
  127 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLAT(:)
 
  128 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRFRSTLAT(:)
 
  129 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLSTLAT(:)
 
  130 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSTA(:,:)
 
  131 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KONL(:,:)
 
  132 LOGICAL   ,OPTIONAL, INTENT(OUT) :: LDSPLITLAT(:)
 
  134 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KULTPP(:)
 
  135 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLS(:)
 
  137 REAL(KIND=JPRB)    ,OPTIONAL, INTENT(OUT) :: PMU(:)
 
  138 REAL(KIND=JPRB)    ,OPTIONAL, INTENT(OUT) :: PGW(:)
 
  139 REAL(KIND=JPRB)    ,OPTIONAL, INTENT(OUT) :: PRPNM(:,:)
 
  140 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KLEI3
 
  141 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPOLEGL
 
  142 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPMS(0:)
 
  145 END SUBROUTINE TRANS_INQ