LMDZ
trans_inq.h
Go to the documentation of this file.
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,&
6  &KULTPP,KPTRLS,&
7  &LDSPLITLAT,&
8  &PMU,PGW,PRPNM,KLEI3,KSPOLEGL,KPMS)
9 
10 !**** *TRANS_INQ* - Extract information from the transform package
11 
12 ! Purpose.
13 ! --------
14 ! Interface routine for extracting information from the T.P.
15 
16 !** Interface.
17 ! ----------
18 ! CALL TRANS_INQ(...)
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)
23 
24 ! SPECTRAL SPACE
25 ! KSPEC - number of complex spectral coefficients on this PE
26 ! KSPEC2 - 2*KSPEC
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
42 
43 ! GRIDPOINT SPACE
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
66 ! two a-sets
67 
68 ! FOURIER SPACE
69 ! KULTPP - number of latitudes for which each a-set is calculating
70 ! the FFT's.
71 ! KPTRLS - pointer to first global latitude of each a-set for which
72 ! it performs the Fourier calculations
73 
74 ! LEGENDRE
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)
81 
82 ! Method.
83 ! -------
84 
85 ! Externals. SET_RESOL - set resolution
86 ! ----------
87 
88 ! Author.
89 ! -------
90 ! Mats Hamrud *ECMWF*
91 
92 ! Modifications.
93 ! --------------
94 ! Original : 00-03-03
95 ! M. Hortal : 2001-03-05 Dimensions of the Legendre polynomials
96 
97 ! ------------------------------------------------------------------
98 
99 USE PARKIND1 ,ONLY : JPIM ,JPRB
100 
101 
102 IMPLICIT NONE
103 
104 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(IN) :: KRESOL
105 
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
117 
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(:)
133 
134 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KULTPP(:)
135 INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLS(:)
136 
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:)
143 
144 
145 END SUBROUTINE TRANS_INQ
146 
147 
148 
149 
150 
151