| Line |
Branch |
Exec |
Source |
| 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 N_REGIONS_NS:N_REGIONS_EW) |
| 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 N_REGIONS_NS. |
| 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 |
|
|
!ifndef INTERFACE |
| 102 |
|
|
|
| 103 |
|
|
USE TPM_GEN |
| 104 |
|
|
USE TPM_DIM |
| 105 |
|
|
USE TPM_DISTR |
| 106 |
|
|
USE TPM_GEOMETRY |
| 107 |
|
|
USE TPM_FIELDS |
| 108 |
|
|
|
| 109 |
|
|
USE SET_RESOL_MOD |
| 110 |
|
|
USE ABORT_TRANS_MOD |
| 111 |
|
|
USE EQ_REGIONS_MOD |
| 112 |
|
|
|
| 113 |
|
|
!endif INTERFACE |
| 114 |
|
|
|
| 115 |
|
|
IMPLICIT NONE |
| 116 |
|
|
|
| 117 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(IN) :: KRESOL |
| 118 |
|
|
|
| 119 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC |
| 120 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC2 |
| 121 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC2G |
| 122 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPEC2MX |
| 123 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KNUMP |
| 124 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOT |
| 125 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOTG |
| 126 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOTMX |
| 127 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KGPTOTL(:,:) |
| 128 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KFRSTLOFF |
| 129 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRFLOFF |
| 130 |
|
|
|
| 131 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KMYMS(:) |
| 132 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KASM0(0:) |
| 133 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KUMPP(:) |
| 134 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPOSSP(:) |
| 135 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRMS(:) |
| 136 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KALLMS(:) |
| 137 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KDIM0G(0:) |
| 138 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KFRSTLAT(:) |
| 139 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KLSTLAT(:) |
| 140 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLAT(:) |
| 141 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRFRSTLAT(:) |
| 142 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLSTLAT(:) |
| 143 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSTA(:,:) |
| 144 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KONL(:,:) |
| 145 |
|
|
LOGICAL ,OPTIONAL, INTENT(OUT) :: LDSPLITLAT(:) |
| 146 |
|
|
|
| 147 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KULTPP(:) |
| 148 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPTRLS(:) |
| 149 |
|
|
|
| 150 |
|
|
REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PMU(:) |
| 151 |
|
|
REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PGW(:) |
| 152 |
|
|
REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PRPNM(:,:) |
| 153 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KLEI3 |
| 154 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KSPOLEGL |
| 155 |
|
|
INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(OUT) :: KPMS(0:) |
| 156 |
|
|
|
| 157 |
|
|
!ifndef INTERFACE |
| 158 |
|
|
|
| 159 |
|
|
INTEGER(KIND=JPIM) :: IU1,IU2 |
| 160 |
|
|
! ------------------------------------------------------------------ |
| 161 |
|
|
|
| 162 |
|
|
|
| 163 |
|
|
! Set current resolution |
| 164 |
|
✗ |
CALL SET_RESOL(KRESOL) |
| 165 |
|
|
|
| 166 |
|
✗ |
IF(PRESENT(KSPEC)) KSPEC = D%NSPEC |
| 167 |
|
✗ |
IF(PRESENT(KSPEC2)) KSPEC2 = D%NSPEC2 |
| 168 |
|
✗ |
IF(PRESENT(KSPEC2G)) KSPEC2G = R%NSPEC2_G |
| 169 |
|
✗ |
IF(PRESENT(KSPEC2MX)) KSPEC2MX = D%NSPEC2MX |
| 170 |
|
✗ |
IF(PRESENT(KNUMP)) KNUMP = D%NUMP |
| 171 |
|
✗ |
IF(PRESENT(KGPTOT)) KGPTOT = D%NGPTOT |
| 172 |
|
✗ |
IF(PRESENT(KGPTOTG)) KGPTOTG = D%NGPTOTG |
| 173 |
|
✗ |
IF(PRESENT(KGPTOTMX)) KGPTOTMX = D%NGPTOTMX |
| 174 |
|
✗ |
IF(PRESENT(KFRSTLOFF)) KFRSTLOFF = D%NFRSTLOFF |
| 175 |
|
✗ |
IF(PRESENT(KPTRFLOFF)) KPTRFLOFF = D%NPTRFLOFF |
| 176 |
|
|
|
| 177 |
|
✗ |
IF(PRESENT(KGPTOTL)) THEN |
| 178 |
|
✗ |
IF(UBOUND(KGPTOTL,1) < N_REGIONS_NS) THEN |
| 179 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KGPTOTL DIM 1 TOO SMALL') |
| 180 |
|
✗ |
ELSEIF(UBOUND(KGPTOTL,2) < N_REGIONS_EW) THEN |
| 181 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KGPTOTL DIM 2 TOO SMALL') |
| 182 |
|
|
ELSE |
| 183 |
|
✗ |
KGPTOTL(1:N_REGIONS_NS,1:N_REGIONS_EW) = D%NGPTOTL(:,:) |
| 184 |
|
|
ENDIF |
| 185 |
|
|
ENDIF |
| 186 |
|
|
|
| 187 |
|
✗ |
IF(PRESENT(KMYMS)) THEN |
| 188 |
|
✗ |
IF(UBOUND(KMYMS,1) < D%NUMP) THEN |
| 189 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KMYMS TOO SMALL') |
| 190 |
|
|
ELSE |
| 191 |
|
✗ |
KMYMS(1:D%NUMP) = D%MYMS(:) |
| 192 |
|
|
ENDIF |
| 193 |
|
|
ENDIF |
| 194 |
|
|
|
| 195 |
|
✗ |
IF(PRESENT(KASM0)) THEN |
| 196 |
|
✗ |
IF(UBOUND(KASM0,1) < R%NSMAX) THEN |
| 197 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KASM0 TOO SMALL') |
| 198 |
|
|
ELSE |
| 199 |
|
✗ |
KASM0(0:R%NSMAX) = D%NASM0(:) |
| 200 |
|
|
ENDIF |
| 201 |
|
|
ENDIF |
| 202 |
|
|
|
| 203 |
|
✗ |
IF(PRESENT(KUMPP)) THEN |
| 204 |
|
✗ |
IF(UBOUND(KUMPP,1) < NPRTRW) THEN |
| 205 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KUMPP TOO SMALL') |
| 206 |
|
|
ELSE |
| 207 |
|
✗ |
KUMPP(1:NPRTRW) = D%NUMPP(:) |
| 208 |
|
|
ENDIF |
| 209 |
|
|
ENDIF |
| 210 |
|
|
|
| 211 |
|
✗ |
IF(PRESENT(KPOSSP)) THEN |
| 212 |
|
✗ |
IF(UBOUND(KPOSSP,1) < NPRTRW+1) THEN |
| 213 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPOSSP TOO SMALL') |
| 214 |
|
|
ELSE |
| 215 |
|
✗ |
KPOSSP(1:NPRTRW+1) = D%NPOSSP(:) |
| 216 |
|
|
ENDIF |
| 217 |
|
|
ENDIF |
| 218 |
|
|
|
| 219 |
|
✗ |
IF(PRESENT(KPTRMS)) THEN |
| 220 |
|
✗ |
IF(UBOUND(KPTRMS,1) < NPRTRW) THEN |
| 221 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPTRMS TOO SMALL') |
| 222 |
|
|
ELSE |
| 223 |
|
✗ |
KPTRMS(1:NPRTRW) = D%NPTRMS(:) |
| 224 |
|
|
ENDIF |
| 225 |
|
|
ENDIF |
| 226 |
|
|
|
| 227 |
|
✗ |
IF(PRESENT(KALLMS)) THEN |
| 228 |
|
✗ |
IF(UBOUND(KALLMS,1) < R%NSMAX+1) THEN |
| 229 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KALLMS TOO SMALL') |
| 230 |
|
|
ELSE |
| 231 |
|
✗ |
KALLMS(1:R%NSMAX+1) = D%NALLMS(:) |
| 232 |
|
|
ENDIF |
| 233 |
|
|
ENDIF |
| 234 |
|
|
|
| 235 |
|
✗ |
IF(PRESENT(KDIM0G)) THEN |
| 236 |
|
✗ |
IF(UBOUND(KDIM0G,1) < R%NSMAX) THEN |
| 237 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KDIM0G TOO SMALL') |
| 238 |
|
|
ELSE |
| 239 |
|
✗ |
KDIM0G(0:R%NSMAX) = D%NDIM0G(0:R%NSMAX) |
| 240 |
|
|
ENDIF |
| 241 |
|
|
ENDIF |
| 242 |
|
|
|
| 243 |
|
✗ |
IF(PRESENT(KFRSTLAT)) THEN |
| 244 |
|
✗ |
IF(UBOUND(KFRSTLAT,1) < N_REGIONS_NS) THEN |
| 245 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KFRSTLAT TOO SMALL') |
| 246 |
|
|
ELSE |
| 247 |
|
✗ |
KFRSTLAT(1:N_REGIONS_NS) = D%NFRSTLAT(:) |
| 248 |
|
|
ENDIF |
| 249 |
|
|
ENDIF |
| 250 |
|
|
|
| 251 |
|
✗ |
IF(PRESENT(KLSTLAT)) THEN |
| 252 |
|
✗ |
IF(UBOUND(KLSTLAT,1) < N_REGIONS_NS) THEN |
| 253 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KLSTLAT TOO SMALL') |
| 254 |
|
|
ELSE |
| 255 |
|
✗ |
KLSTLAT(1:N_REGIONS_NS) = D%NLSTLAT(:) |
| 256 |
|
|
ENDIF |
| 257 |
|
|
ENDIF |
| 258 |
|
|
|
| 259 |
|
✗ |
IF(PRESENT(KPTRLAT)) THEN |
| 260 |
|
✗ |
IF(UBOUND(KPTRLAT,1) < R%NDGL) THEN |
| 261 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPTRLAT TOO SMALL') |
| 262 |
|
|
ELSE |
| 263 |
|
✗ |
KPTRLAT(1:R%NDGL) = D%NPTRLAT(:) |
| 264 |
|
|
ENDIF |
| 265 |
|
|
ENDIF |
| 266 |
|
|
|
| 267 |
|
✗ |
IF(PRESENT(KPTRFRSTLAT)) THEN |
| 268 |
|
✗ |
IF(UBOUND(KPTRFRSTLAT,1) < N_REGIONS_NS) THEN |
| 269 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPTRFRSTLAT TOO SMALL') |
| 270 |
|
|
ELSE |
| 271 |
|
✗ |
KPTRFRSTLAT(1:N_REGIONS_NS) = D%NPTRFRSTLAT(:) |
| 272 |
|
|
ENDIF |
| 273 |
|
|
ENDIF |
| 274 |
|
|
|
| 275 |
|
✗ |
IF(PRESENT(KPTRLSTLAT)) THEN |
| 276 |
|
✗ |
IF(UBOUND(KPTRLSTLAT,1) < N_REGIONS_NS) THEN |
| 277 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPTRLSTLAT TOO SMALL') |
| 278 |
|
|
ELSE |
| 279 |
|
✗ |
KPTRLSTLAT(1:N_REGIONS_NS) = D%NPTRLSTLAT(:) |
| 280 |
|
|
ENDIF |
| 281 |
|
|
ENDIF |
| 282 |
|
|
|
| 283 |
|
✗ |
IF(PRESENT(KSTA)) THEN |
| 284 |
|
✗ |
IF(UBOUND(KSTA,1) < R%NDGL+N_REGIONS_NS-1) THEN |
| 285 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KSTA DIM 1 TOO SMALL') |
| 286 |
|
✗ |
ELSEIF(UBOUND(KSTA,2) < N_REGIONS_EW) THEN |
| 287 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KSTA DIM 2 TOO SMALL') |
| 288 |
|
|
ELSE |
| 289 |
|
✗ |
KSTA(1:R%NDGL+N_REGIONS_NS-1,1:N_REGIONS_EW) = D%NSTA(:,:) |
| 290 |
|
|
ENDIF |
| 291 |
|
|
ENDIF |
| 292 |
|
|
|
| 293 |
|
✗ |
IF(PRESENT(KONL)) THEN |
| 294 |
|
✗ |
IF(UBOUND(KONL,1) < R%NDGL+N_REGIONS_NS-1) THEN |
| 295 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KONL DIM 1 TOO SMALL') |
| 296 |
|
✗ |
ELSEIF(UBOUND(KONL,2) < N_REGIONS_EW) THEN |
| 297 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KONL DIM 2 TOO SMALL') |
| 298 |
|
|
ELSE |
| 299 |
|
✗ |
KONL(1:R%NDGL+N_REGIONS_NS-1,1:N_REGIONS_EW) = D%NONL(:,:) |
| 300 |
|
|
ENDIF |
| 301 |
|
|
ENDIF |
| 302 |
|
|
|
| 303 |
|
✗ |
IF(PRESENT(LDSPLITLAT)) THEN |
| 304 |
|
✗ |
IF(UBOUND(LDSPLITLAT,1) < R%NDGL) THEN |
| 305 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: LDSPLITLAT TOO SMALL') |
| 306 |
|
|
ELSE |
| 307 |
|
✗ |
LDSPLITLAT(1:R%NDGL) = D%LSPLITLAT(:) |
| 308 |
|
|
ENDIF |
| 309 |
|
|
ENDIF |
| 310 |
|
|
|
| 311 |
|
✗ |
IF(PRESENT(KULTPP)) THEN |
| 312 |
|
✗ |
IF(UBOUND(KULTPP,1) < NPRTRNS) THEN |
| 313 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KULTPP TOO SMALL') |
| 314 |
|
|
ELSE |
| 315 |
|
✗ |
KULTPP(1:NPRTRNS) = D%NULTPP(:) |
| 316 |
|
|
ENDIF |
| 317 |
|
|
ENDIF |
| 318 |
|
|
|
| 319 |
|
✗ |
IF(PRESENT(KPTRLS)) THEN |
| 320 |
|
✗ |
IF(UBOUND(KPTRLS,1) < NPRTRNS) THEN |
| 321 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPTRLS TOO SMALL') |
| 322 |
|
|
ELSE |
| 323 |
|
✗ |
KPTRLS(1:NPRTRNS) = D%NPTRLS(:) |
| 324 |
|
|
ENDIF |
| 325 |
|
|
ENDIF |
| 326 |
|
|
|
| 327 |
|
✗ |
IF(PRESENT(PMU)) THEN |
| 328 |
|
✗ |
IF(UBOUND(PMU,1) < R%NDGL) THEN |
| 329 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: PMU TOO SMALL') |
| 330 |
|
|
ELSE |
| 331 |
|
✗ |
PMU(1:R%NDGL) = F%RMU |
| 332 |
|
|
ENDIF |
| 333 |
|
|
ENDIF |
| 334 |
|
|
|
| 335 |
|
✗ |
IF(PRESENT(PGW)) THEN |
| 336 |
|
✗ |
IF(UBOUND(PGW,1) < R%NDGL) THEN |
| 337 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: PGW TOO SMALL') |
| 338 |
|
|
ELSE |
| 339 |
|
✗ |
PGW(1:R%NDGL) = F%RW |
| 340 |
|
|
ENDIF |
| 341 |
|
|
ENDIF |
| 342 |
|
|
|
| 343 |
|
✗ |
IF(PRESENT(PRPNM)) THEN |
| 344 |
|
✗ |
IU1 = UBOUND(PRPNM,1) |
| 345 |
|
✗ |
IU2 = UBOUND(PRPNM,2) |
| 346 |
|
✗ |
IF(IU1 < R%NDGNH) THEN |
| 347 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ:FIRST DIM. OF PRNM TOO SMALL') |
| 348 |
|
|
ELSE |
| 349 |
|
✗ |
IU1 = MIN(IU1,R%NLEI3) |
| 350 |
|
✗ |
IU2 = MIN(IU2,D%NSPOLEGL) |
| 351 |
|
✗ |
PRPNM(1:IU1,1:IU2) = F%RPNM(1:IU1,1:IU2) |
| 352 |
|
|
ENDIF |
| 353 |
|
|
ENDIF |
| 354 |
|
✗ |
IF(PRESENT(KLEI3)) THEN |
| 355 |
|
✗ |
KLEI3=R%NLEI3 |
| 356 |
|
|
ENDIF |
| 357 |
|
✗ |
IF(PRESENT(KSPOLEGL)) THEN |
| 358 |
|
✗ |
KSPOLEGL=D%NSPOLEGL |
| 359 |
|
|
ENDIF |
| 360 |
|
✗ |
IF(PRESENT(KPMS)) THEN |
| 361 |
|
✗ |
IF(UBOUND(KPMS,1) < R%NSMAX) THEN |
| 362 |
|
✗ |
CALL ABORT_TRANS('TRANS_INQ: KPMS TOO SMALL') |
| 363 |
|
|
ELSE |
| 364 |
|
✗ |
KPMS(0:R%NSMAX) = D%NPMS(0:R%NSMAX) |
| 365 |
|
|
ENDIF |
| 366 |
|
|
ENDIF |
| 367 |
|
|
! ------------------------------------------------------------------ |
| 368 |
|
|
|
| 369 |
|
|
!endif INTERFACE |
| 370 |
|
|
|
| 371 |
|
✗ |
END SUBROUTINE TRANS_INQ |
| 372 |
|
|
|
| 373 |
|
|
|
| 374 |
|
|
|
| 375 |
|
|
|
| 376 |
|
|
|
| 377 |
|
|
|
| 378 |
|
|
|