OpenMCTDHB v2.3

xvlib.f

Go to the documentation of this file.
00001 ********************************************************************
00002 C                                                                     
00003 C                              XVLIB                                  
00004 C                                                                     
00005 C  Library module containing linear algebra routines that involve the 
00006 C  multiplication of vectors or scalars.
00007 C                                                                     
00008 C  Nomenclature:
00009 C    Each name has 6 basic characters:
00010 C    First 2 characters denote the objects being multiplied:
00011 C       q: quadratic matrix
00012 C       m: general (rectangular) matrix
00013 C       h: hermitian matrix
00014 C       p: positive definite matrix
00015 C       s: symmetric matrix
00016 C       u: unitary matrix
00017 C       d: diagonal matrix (only diagonal elements are supplied as a
00018 C          vector)
00019 C       t: tensor of third order
00020 C       v: vector
00021 C       x: scalar
00022 C       e.g. 'xv' denotes the operation (scalar * vector)
00023 C    Character 3 denotes how first object is used:
00024 C       x: unchanged from input
00025 C       t: transpose of input
00026 C       a: adjoint of input
00027 C       c: complex conjugate of input
00028 C       i: inverse (real and complex scalar only)
00029 C    Character 4 denotes how second object is used:
00030 C       see Character 3 above.
00031 C    Character 5, 6 denote data types of first, second object
00032 C       respectively:
00033 C       z: complex double precision (complex*16)
00034 C       c: complex single precision (complex*8)
00035 C       d: real double precision (real*8)
00036 C       r: real single precision (real*4)
00037 C       y: complex matrix stored as two double precision (real*8)
00038 C          matrices
00039 C     Further characters, if present, give more informaion:
00040 C       a: the result is added to a further object
00041 C       r: the result is subtracted (removed) from a further object
00042 C       o: the result is stored (overwritten) in the second input object
00043 C       c: the input matrices commute
00044 C       h: the resulting matrix is hermitian
00045 C       s: the resulting matrix is symmetric
00046 C       1: the physical dimensions of the matrices differs from those
00047 C          used.
00048 C   
00049 CC  xqxxzz (x,a,c,dim)
00050 CC      Definition: x*a(j,i) = c(j,i)
00051 CC      Dimensions: a(dim,dim),c(dim,dim),x
00052 C
00053 CC  xqxxzza (x,a,c,dim)
00054 CC      Definition: x*a(j,i) + c(j,i) = c(j,i)
00055 CC      Dimensions: a(dim,dim),c(dim,dim),x
00056 C
00057 CC  xmxxzz (x,a,c,dim1,dim2)
00058 CC      Definition: x*a(j,i) = c(j,i)
00059 CC      Dimensions: a(dim1,dim2),c(dim1,dim2),x
00060 C
00061 C   xmxxzza (x,a,c,dim1,dim2)
00062 C       Definition: x*a(j,i) + c(j,i) = c(j,i)
00063 C       Dimensions: a(dim1,dim2),c(dim1,dim2),x
00064 C
00065 C   xmxxdza (x,a,c,dim1,dim2)
00066 C       Definition: x*a(j,i) + c(j,i) = c(j,i)
00067 C       Dimensions: a(dim1,dim2),c(dim1,dim2),x
00068 C
00069 C   xmxtzza (x,a,c,dim1,dim2)
00070 C       Definition: x*a(i,j) + c(j,i) = c(j,i)
00071 C       Dimensions: a(dim2,dim1),c(dim1,dim2),x
00072 C
00073 C   xqxxdd (x,a,c,dim)
00074 C       Definition: x*a(j,i) = c(j,i)
00075 C       Dimensions: a(dim,dim),c(dim,dim),x
00076 C
00077 C   xqxxdda (x,a,c,dim)
00078 C       Definition: x*a(j,i) + c(j,i) = c(j,i)
00079 C       Dimensions: a(dim,dim),c(dim,dim),x
00080 C
00081 C   xqxxzza (x,a,c,dim)
00082 C       Definition: x*a(j,i) + c(j,i) = c(j,i)
00083 C       Dimensions: a(dim,dim),c(dim,dim),x
00084 C
00085 C   xqxxdda1 (x,a,c,phdim,dim)
00086 C       Definition: x*a(j,i) + c(j,i) = c(j,i) ; 1 <= i,j <= dim
00087 C       Dimensions: a(phdim,dim),c(phdim,dim),x
00088 C
00089 C   xqxxzd (x,a,c,dim)
00090 C       Definition: x*a(j,i) = c(j,i)
00091 C       Dimensions: a(dim,dim),c(dim,dim),x
00092 C
00093 C   xdxxdda (x,a,c,dim)
00094 C       Definition: x*a(i) + c(i,i) = c(i,i)
00095 C       Dimensions: a(dim),c(dim,dim),x
00096 C
00097 C   xdxsdda (x,a,c,dim)
00098 C       Definition: x*a(i)**2 + c(i,i) = c(i,i)
00099 C       Dimensions: a(dim),c(dim,dim),x
00100 C
00101 C   xuxxdda (x,c,dim)
00102 C       Definition: x + c(i,i) = c(i,i)
00103 C       Dimensions: c(dim,dim),x
00104 C
00105 C   xvixddo (x,v,dim)
00106 C       Definition: inv(x)*v(i) = v(i)
00107 C       Dimensions: v(dim),x
00108 C
00109 C   xvixzzo (x,v,dim)
00110 C       Definition: inv(x)*v(i) = v(i)
00111 C       Dimensions: v(dim),x
00112 C
00113 C   xvixdzo (x,v,dim)
00114 C       Definition: inv(x)*v(i) = v(i)
00115 C       Dimensions: v(dim),x
00116 C
00117 C   xvxxzza (x,v,w,dim)
00118 C       Definition: x*v(i) + w(i) = w(i)
00119 C       Dimensions: v(dim),w(dim),x
00120 C
00121 C   xvxxdzr (x,v,w,dim)
00122 C       Definition: w(i) - x*v(i) = w(i)
00123 C       Dimensions: v(dim),w(dim),x
00124 C
00125 C   xvxxdza (x,v,w,dim)
00126 C       Definition: w(i) + x*v(i) = w(i)
00127 C       Dimensions: v(dim),w(dim),x
00128 C
00129 C   xvxxzzo (x,v,dim)
00130 C       Definition: x*v(i) = v(i)
00131 C       Dimensions: v(dim),x
00132 C
00133 C   xvxxdzo (x,v,dim)
00134 C       Definition: x*v(i) = v(i)
00135 C       Dimensions: v(dim),x
00136 C
00137 C   xvxxddo (x,v,dim)
00138 C       Definition: x*v(i) = v(i)
00139 C       Dimensions: v(dim),x
00140 C
00141 C   xvxxdds (x,v,w,dim)
00142 C       Definition: w(i) - x*v(i) = w(i)
00143 C       Dimensions: v(dim),w(dim),x
00144 C
00145 C   xvxxzzs (x,v,w,dim)
00146 C       Definition: w(i) - x*v(i) = w(i)
00147 C       Dimensions: v(dim),w(dim),x
00148 C
00149 C   xqxxzzo (x,a,dim)
00150 C       Definition: x*a(j,i) = a(j,i)
00151 C       Dimensions: a(dim,dim),x
00152 C
00153 C   xqxxdzo (x,a,dim)
00154 C       Definition: x*a(j,i) = a(j,i)
00155 C       Dimensions: a(dim,dim),x
00156 C
00157 C   xqixdzo (x,a,dim)
00158 C       Definition: inv(x)*a(j,i) = a(j,i)
00159 C       Dimensions: a(dim,dim),x
00160 C
00161 C   xmxxzzo (x,a,dim1,dim2)
00162 C       Definition: x*a(j,i) = a(j,i)
00163 C       Dimensions: a(dim1,dim2),x
00164 C
00165 C   vvtxdd (u,v,x,dim)
00166 C       Definition: u(i)*v(i) = x
00167 C       Dimensions: u(dim),v(dim),x
00168 C
00169 C   vvtxzz (u,v,x,dim)
00170 C       Definition: u(i)*v(i) = x
00171 C       Dimensions: u(dim),v(dim),x
00172 C
00173 C   vvtxzza (u,v,x,dim)
00174 C       Definition: u(i)*v(i) = x
00175 C       Dimensions: u(dim),v(dim),x
00176 C
00177 C   vvaxzz (u,v,x,dim)
00178 C       Definition: dconjg(u(i))*v(i) = x
00179 C       Dimensions: u(dim),v(dim),x
00180 C
00181 C   vvxazz (u,v,m,dim)
00182 C       Definition: u(i)*dconjg(v(j)) = m(i,j)
00183 C       Dimensions: d(dim),v(dim),m(dim,dim)
00184 C
00185 C   qvxxdd (a,v,w,dim)
00186 C       Definition: a(i,j)*v(j) = w(i) .
00187 C       Dimensions: a(dim,dim),v(dim),w(dim)
00188 C
00189 C   qvxxzz (a,v,w,dim)
00190 C       Definition: a(i,j)*v(j) = w(i) .
00191 C       Dimensions: a(dim,dim),v(dim),w(dim)
00192 C
00193 C   qvxxdd1 (a,v,w,phdim,dim)
00194 C       Definition: a(i,j)*v(j) = w(i) ; 1 <= i,j <= dim .
00195 C       Dimensions: a(phdim,dim),v(dim),w(dim)
00196 C
00197 C   qvtxdd (a,v,w,dim)
00198 C       Definition: a(j,i)*v(j) = w(i) .
00199 C       Dimensions: a(dim,dim),v(dim),w(dim)
00200 C
00201 C   qvtxdd1 (a,v,w,phdim,dim)
00202 C       Definition: a(j,i)*v(j) = w(i) ; 1 <= i,j <= dim .
00203 C       Dimensions: a(phdim,dim),v(dim),w(dim)
00204 C
00205 C   mvtxdd (a,v,w,dim1,dim2)
00206 C       Definition: a(j,i)*v(j) = w(i)
00207 C       Dimensions: a(dim1,dim2),v(dim1),w(dim2)
00208 C
00209 C   mvtxdd1 (a,v,w,phdim,dim1,dim2)
00210 C       Definition: a(j,i)*v(j) = w(i)
00211 C       Dimensions: a(dim1,dim2),v(dim1),w(dim2) (= used dimensions)
00212 C       Dimensions: a(phdim,phdim) (= allocated dimensions)
00213 C
00214 C   mvtxzz (a,v,w,dim1,dim2)
00215 C       Definition: a(j,i)*v(j) = w(i) .
00216 C       Dimensions: a(dim1,dim2),v(dim1),w(dim2)
00217 C
00218 C   mvxxzz (a,v,w,dim1,dim2)
00219 C       Definition: a(i,j)*v(j) = w(i) .
00220 C       Dimensions: a(dim1,dim2),v(dim2),w(dim1)
00221 C
00222 C   dvxxdd (a,v,w,dim)
00223 C       Definition: a(i)*v(i) = w(i) .
00224 C       Dimensions: a(dim),v(dim),w(dim)
00225 C
00226 C   dvxxdz (a,v,w,dim)
00227 C       Definition: a(i)*v(i) = w(i) .
00228 C       Dimensions: a(dim),v(dim),w(dim)
00229 C
00230 C   dvxxdzo (a,v,dim)
00231 C       Definition: a(i)*v(i) = v(i) .
00232 C       Dimensions: a(dim),v(dim)
00233 C
00234 C   dvxxddo (a,v,dim)
00235 C       Definition: a(i)*v(i) = v(i) .
00236 C       Dimensions: a(dim),v(dim)
00237 C
00238 C   qvxxdz (a,v,w,dim)
00239 C       Definition: a(i,j)*v(j) = w(i) .
00240 C       Dimensions: a(dim,dim),v(dim),w(dim)
00241 C
00242 C   qvxxdz1 (a,v,w,phdim,dim)
00243 C       Definition: a(i,j)*v(j) = w(i) ; 1 <= i,j <= dim .
00244 C       Dimensions: a(phdim,dim),v(dim),w(dim)
00245 C
00246 C   qvxxzz1 (a,v,w,phdim,dim)
00247 C       Definition: a(i,j)*v(j) = w(i) ; 1 <= i,j <= dim .
00248 C       Dimensions: a(phdim,dim),v(dim),w(dim)
00249 C
00250 C   qvxxyz (a,v,w,dim)
00251 C       Definition: a(i,j)*v(j) = w(i) .
00252 C       Dimensions: a(dim,dim),v(dim),w(dim)
00253 C
00254 C ----------------------------------------------------------------------
00255 
00256 
00257 C-----------------------------------------------------------------------
00258 C Library subroutine xqxxzz
00259 C
00260 C Multiplication of a complex scalar with a complex quadratic matrix:
00261 C     x*a(j,i)=c(j,i)
00262 C-----------------------------------------------------------------------
00263 
00264 C     subroutine xqxxzz (x,a,c,dim)
00265 
00266 C     implicit none
00267 
00268 C     integer dim,i,j
00269 C     complex*16  x,a(dim,dim),c(dim,dim)
00270 
00271 C     do i = 1,dim
00272 C        do j = 1,dim
00273 C           c(j,i) = x*a(j,i)
00274 C        enddo
00275 C     enddo
00276 
00277 C     return
00278 C     end
00279 
00280 C ----------------------------------------------------------------------
00281 C Library subroutine xqxxzza
00282 C
00283 C Multiplication of a complex scalar with a complex quadratic matrix,
00284 C the result of which is added to a further input complex quadratic
00285 C matrix:
00286 C     x*a(j,i) + c(j,i) = c(j,i)
00287 C
00288 C NB Input c matrix is overwritten on output
00289 C-----------------------------------------------------------------------
00290 
00291 C     subroutine xqxxzza (x,a,c,dim)
00292 
00293 C     implicit none
00294 
00295 C     integer dim,i,j
00296 C     complex*16  x,a(dim,dim),c(dim,dim)
00297 
00298 C     do i = 1,dim
00299 C        do j = 1,dim
00300 C           c(j,i) = c(j,i)+x*a(j,i)
00301 C        enddo
00302 C     enddo
00303 
00304 C     return
00305 C     end
00306 
00307 C ----------------------------------------------------------------------
00308 C Library subroutine xmxxzz
00309 C
00310 C Multiplication of a complex scalar with a complex rectangular matrix:
00311 C     x*a(j,i)=c(j,i)
00312 C-----------------------------------------------------------------------
00313 
00314 C     subroutine xmxxzz (x,a,c,dim1,dim2)
00315 
00316 C     implicit none
00317 
00318 C     integer dim1,dim2,i,j
00319 C     complex*16  x,a(dim1,dim2),c(dim1,dim2)
00320 
00321 C     do i = 1,dim2
00322 C        do j = 1,dim1
00323 C           c(j,i) = x*a(j,i)
00324 C        enddo
00325 C     enddo
00326 
00327 C     return
00328 C     end
00329 
00330 C ----------------------------------------------------------------------
00331 C Library subroutine xmxxzza
00332 C
00333 C Multiplication of a complex scalar with a complex rectangular matrix,
00334 C the result of which is added to a further input complex rectangular
00335 C matrix:
00336 C     x*a(j,i) + c(j,i) = c(j,i)
00337 C
00338 C NB Input c matrix is overwritten on output
00339 C-----------------------------------------------------------------------
00340 
00341       subroutine xmxxzza (x,a,c,dim1,dim2)
00342 
00343       implicit none
00344 
00345       integer dim1,dim2,i,j
00346       complex*16  x,a(dim1,dim2),c(dim1,dim2)
00347 
00348       do i = 1,dim2
00349          do j = 1,dim1
00350             c(j,i) = c(j,i)+x*a(j,i)
00351          enddo
00352       enddo
00353 
00354       return
00355       end
00356 
00357 C ----------------------------------------------------------------------
00358 C Library subroutine xmxxdza
00359 C
00360 C Multiplication of a real scalar with a complex rectangular matrix,
00361 C the result of which is added to a further input complex rectangular
00362 C matrix:
00363 C     x*a(j,i) + c(j,i) = c(j,i)
00364 C
00365 C NB Input c matrix is overwritten on output
00366 C-----------------------------------------------------------------------
00367 
00368       subroutine xmxxdza (x,a,c,dim1,dim2)
00369 
00370       implicit none
00371 
00372       integer dim1,dim2,i,j
00373       real*8  x
00374       complex*16  a(dim1,dim2),c(dim1,dim2)
00375 
00376       do i = 1,dim2
00377          do j = 1,dim1
00378             c(j,i) = c(j,i)+x*a(j,i)
00379          enddo
00380       enddo
00381 
00382       return
00383       end
00384 
00385 C ----------------------------------------------------------------------
00386 C Library subroutine xmxtzza
00387 C
00388 C Multiplication of a complex scalar with a transposed complex
00389 C rectangular matrix, the result of which is added to a further input
00390 C complex rectangular matrix:
00391 C     x*a(i,j) + c(j,i) = c(j,i)
00392 C
00393 C NB Input c matrix is overwritten on output
00394 C-----------------------------------------------------------------------
00395 
00396       subroutine xmxtzza (x,a,c,dim1,dim2)
00397 
00398       implicit none
00399 
00400       integer dim1,dim2,i,j
00401       complex*16  x,a(dim2,dim1),c(dim1,dim2)
00402 
00403       do i = 1,dim2
00404          do j = 1,dim1
00405             c(j,i) = c(j,i)+x*a(i,j)
00406          enddo
00407       enddo
00408 
00409       return
00410       end
00411 
00412 C ----------------------------------------------------------------------
00413 C Library subroutine xqxxdd
00414 C
00415 C Multiplication of a real scalar with a real quadratic matrix:
00416 C     x*a(j,i)=c(j,i)
00417 C-----------------------------------------------------------------------
00418 
00419       subroutine xqxxdd (x,a,c,dim)
00420 
00421       implicit none
00422 
00423       integer dim,i,j
00424       real*8  x,a(dim,dim),c(dim,dim)
00425 
00426       do i = 1,dim
00427          do j = 1,dim
00428             c(j,i) = x*a(j,i)
00429          enddo
00430       enddo
00431 
00432       return
00433       end
00434 
00435 C ----------------------------------------------------------------------
00436 C Library subroutine xqxxdda
00437 C
00438 C Multiplication of a real scalar with a real quadratic matrix,
00439 C the result of which is added to a further input real quadratic matrix:
00440 C     x*a(j,i) + c(j,i) = c(j,i)
00441 C
00442 C NB Input c matrix is overwritten on output
00443 C-----------------------------------------------------------------------
00444 
00445       subroutine xqxxdda (x,a,c,dim)
00446 
00447       implicit none
00448 
00449       integer dim,i,j
00450       real*8  x,a(dim,dim),c(dim,dim)
00451 
00452       do i = 1,dim
00453          do j = 1,dim
00454             c(j,i) = c(j,i)+x*a(j,i)
00455          enddo
00456       enddo
00457 
00458       return
00459       end
00460 
00461 C ----------------------------------------------------------------------
00462 C Library subroutine xqxxzza
00463 C
00464 C Multiplication of a complex scalar with a complex quadratic matrix,
00465 C the result of which is added to a further input complex quadratic
00466 C matrix:
00467 C     x*a(j,i) + c(j,i) = c(j,i)
00468 C
00469 C NB Input c matrix is overwritten on output
00470 C-----------------------------------------------------------------------
00471 
00472       subroutine xqxxzza (x,a,c,dim)
00473 
00474       implicit none
00475 
00476       integer    dim,i,j
00477       complex*16 x,a(dim,dim),c(dim,dim)
00478 
00479       do i = 1,dim
00480          do j = 1,dim
00481             c(j,i) = c(j,i)+x*a(j,i)
00482          enddo
00483       enddo
00484 
00485       return
00486       end
00487 
00488 C ----------------------------------------------------------------------
00489 C Library subroutine xqxxdda1
00490 C
00491 C Multiplication of a real scalar with a real quadratic matrix,
00492 C the result of which is added to a further input real quadratic matrix:
00493 C     x*a(j,i) + c(j,i) = c(j,i)
00494 C
00495 C NB Input c matrix is overwritten on output
00496 C-----------------------------------------------------------------------
00497 
00498       subroutine xqxxdda1 (x,a,c,phdim,dim)
00499 
00500       implicit none
00501 
00502       integer phdim,dim,i,j
00503       real*8  x,a(phdim,dim),c(phdim,dim)
00504 
00505       do i = 1,dim
00506          do j = 1,dim
00507             c(j,i) = c(j,i)+x*a(j,i)
00508          enddo
00509       enddo
00510 
00511       return
00512       end
00513 
00514 C ----------------------------------------------------------------------
00515 C Library subroutine xqxxzd
00516 C
00517 C Multiplication of a complex scalar with a real quadratic matrix:
00518 C     x*a(j,i)=c(j,i)
00519 C-----------------------------------------------------------------------
00520 
00521       subroutine xqxxzd (x,a,c,dim)
00522 
00523       implicit none
00524 
00525       integer dim,i,j
00526       real*8  a(dim,dim)
00527       complex*16  x,c(dim,dim)
00528 
00529       do i = 1,dim
00530          do j = 1,dim
00531             c(j,i) = x*a(j,i)
00532          enddo
00533       enddo
00534 
00535       return
00536       end
00537 
00538 C ----------------------------------------------------------------------
00539 C Library subroutine xdxxdda
00540 C
00541 C Multiplication of a real scalar with a real diagonal matrix, where
00542 C the result is added to a complex quadratic matrix
00543 C     x*a(i,i) + c(i,i) = c(i,i)
00544 C-----------------------------------------------------------------------
00545 
00546       subroutine xdxxdda (x,a,c,dim)
00547 
00548       implicit none
00549 
00550       integer dim,i
00551       real*8  x, a(dim)
00552       complex*16  c(dim,dim)
00553 
00554       do i = 1,dim
00555          c(i,i) = c(i,i) + x*a(i)
00556       enddo
00557 
00558       return
00559       end
00560 
00561 C ----------------------------------------------------------------------
00562 C Library subroutine xdxsdda
00563 C
00564 C Multiplication of a real scalar with a squared real diagonal matrix, 
00565 C where the result is added to a complex quadratic matrix
00566 C     x*a(i,i)**2 + c(i,i) = c(i,i)
00567 C-----------------------------------------------------------------------
00568 
00569       subroutine xdxsdda (x,a,c,dim)
00570 
00571       implicit none
00572 
00573       integer dim,i
00574       real*8  x, a(dim)
00575       complex*16  c(dim,dim)
00576 
00577       do i = 1,dim
00578          c(i,i) = c(i,i) + x*a(i)**2
00579       enddo
00580 
00581       return
00582       end
00583 
00584 C ----------------------------------------------------------------------
00585 C Library subroutine xuxxdda
00586 C
00587 C Multiplication of a real scalar with the unity matrix, where
00588 C the result is added to a complex quadratic matrix
00589 C     x + c(i,i) = c(i,i)
00590 C-----------------------------------------------------------------------
00591 
00592       subroutine xuxxdda (x,c,dim)
00593 
00594       implicit none
00595 
00596       integer dim,i
00597       real*8  x
00598       complex*16  c(dim,dim)
00599 
00600       do i = 1,dim
00601          c(i,i) = c(i,i) + x
00602       enddo
00603 
00604       return
00605       end
00606 
00607 C ----------------------------------------------------------------------
00608 C Library subroutine xvixddo
00609 C
00610 C Multiplication of the inverse of a real scalar with a real vector,
00611 C where the result is stored in the initial array:
00612 C     inv(x)*v(i) = v(i)
00613 C
00614 C NB Input v vector is overwritten on output
00615 C    This routine can be used for the normalisation of a vector if
00616 C    x is the sqrt of the vector scalar product.
00617 C-----------------------------------------------------------------------
00618 
00619       subroutine xvixddo (x,v,dim)
00620 
00621       implicit none
00622 
00623       integer dim,i
00624       real*8  v(dim),x,inv
00625 
00626       inv=1.0d0/x
00627       do i = 1,dim
00628          v(i) = inv*v(i)
00629       enddo
00630 
00631       return
00632       end
00633 
00634 C ----------------------------------------------------------------------
00635 C Library subroutine xvixzzo
00636 C
00637 C Multiplication of the inverse of a complex scalar with a complex
00638 C vector, where the result is stored in the initial array:
00639 C     inv(x)*v(i) = v(i)
00640 C
00641 C NB Input v vector is overwritten on output
00642 C    This routine can be used for the normalisation of a vector if
00643 C    x is the sqrt of the vector's SYMMETRIC scalar product.
00644 C-----------------------------------------------------------------------
00645 
00646       subroutine xvixzzo (x,v,dim)
00647 
00648       implicit none
00649 
00650       integer    dim,i
00651       complex*16 v(dim),x,inv
00652 
00653       inv=(1.0d0,0.0d0)/x
00654       do i = 1,dim
00655          v(i) = inv*v(i)
00656       enddo
00657 
00658       return
00659       end
00660 
00661 C ----------------------------------------------------------------------
00662 C Library subroutine xvixdzo
00663 C
00664 C Multiplication of the inverse of a real scalar with a complex vector,
00665 C where the result is stored in the initial array:
00666 C     inv(x)*v(i) = v(i)
00667 C
00668 C NB Input v vector is overwritten on output
00669 C    This routine can be used for the normalisation of a vector if
00670 C    x is the sqrt of the vector scalar product.
00671 C-----------------------------------------------------------------------
00672 
00673       subroutine xvixdzo (x,v,dim)
00674 
00675       implicit none
00676 
00677       integer dim,i
00678       real*8  x,inv
00679       complex*16 v(dim)
00680 
00681       inv=1.0d0/x
00682       do i = 1,dim
00683          v(i) = inv*v(i)
00684       enddo
00685 
00686       return
00687       end
00688 
00689 C ----------------------------------------------------------------------
00690 C Library subroutine xvxxzza
00691 C
00692 C Multiplication of a complex scalar with a complex vector,
00693 C where the result is added to a further vector
00694 C     x*v(i) +w(i) = w(i)
00695 C
00696 C NB Input w vector is overwritten on output
00697 C-----------------------------------------------------------------------
00698 
00699       subroutine xvxxzza (x,v,w,dim)
00700 
00701       implicit none
00702 
00703       integer dim,i
00704       complex*16 v(dim),w(dim),x
00705 
00706       do i = 1,dim
00707          w(i) = w(i)+x*v(i)
00708       enddo
00709 
00710       return
00711       end
00712 
00713 C ----------------------------------------------------------------------
00714 C Library subroutine xvxxdzr
00715 C
00716 C Multiplication of a real scalar with a complex vector,
00717 C where the result is subtracted from a further vector
00718 C     w(i) - x*v(i) = w(i)
00719 C
00720 C NB Input w vector is overwritten on output
00721 C-----------------------------------------------------------------------
00722 
00723       subroutine xvxxdzr (x,v,w,dim)
00724 
00725       implicit none
00726 
00727       integer    dim,i
00728       real*8     x
00729       complex*16 v(dim),w(dim)
00730 
00731       do i = 1,dim
00732          w(i) = w(i)-x*v(i)
00733       enddo
00734 
00735       return
00736       end
00737 
00738 C ----------------------------------------------------------------------
00739 C Library subroutine xvxxdza
00740 C
00741 C Multiplication of a real scalar with a complex vector,
00742 C where the result is added to a further vector
00743 C     w(i) + x*v(i) = w(i)
00744 C
00745 C NB Input w vector is overwritten on output
00746 C-----------------------------------------------------------------------
00747 
00748       subroutine xvxxdza (x,v,w,dim)
00749 
00750       implicit none
00751 
00752       integer    dim,i
00753       real*8     x
00754       complex*16 v(dim),w(dim)
00755 
00756       do i = 1,dim
00757          w(i) = w(i)+x*v(i)
00758       enddo
00759 
00760       return
00761       end
00762 
00763 C ----------------------------------------------------------------------
00764 C Library subroutine xvxxdds
00765 C
00766 C Multiplication of a real scalar with a real vector,
00767 C where the result is subtracted from a further vector
00768 C     w(i) - x*v(i) = w(i)
00769 C
00770 C NB Input w vector is overwritten on output
00771 C-----------------------------------------------------------------------
00772 
00773       subroutine xvxxdds (x,v,w,dim)
00774 
00775       implicit none
00776 
00777       integer dim,i
00778       real*8  v(dim),w(dim),x
00779 
00780       do i = 1,dim
00781          w(i) = w(i)-x*v(i)
00782       enddo
00783 
00784       return
00785       end
00786 
00787 C ----------------------------------------------------------------------
00788 C Library subroutine xvxxzzo
00789 C
00790 C Multiplication of a complex scalar with a complex vector,
00791 C where the result is stored in the input vector
00792 C     x*v(i) = v(i)
00793 C
00794 C NB Input v vector is overwritten on output
00795 C-----------------------------------------------------------------------
00796 
00797       subroutine xvxxzzo (x,v,dim)
00798 
00799       implicit none
00800 
00801       integer dim,i
00802       complex*16 v(dim),x
00803 
00804       do i = 1,dim
00805          v(i) = x*v(i)
00806       enddo
00807 
00808       return
00809       end
00810 
00811 C ----------------------------------------------------------------------
00812 C Library subroutine xvxxdzo
00813 C
00814 C Multiplication of a real scalar with a complex vector,
00815 C where the result is stored in the input vector
00816 C     x*v(i) = v(i)
00817 C
00818 C NB Input v vector is overwritten on output
00819 C-----------------------------------------------------------------------
00820 
00821       subroutine xvxxdzo (x,v,dim)
00822 
00823       implicit none
00824 
00825       integer dim,i
00826       real*8  x
00827       complex*16 v(dim)
00828 
00829       do i = 1,dim
00830          v(i) = x*v(i)
00831       enddo
00832 
00833       return
00834       end
00835 
00836 C ----------------------------------------------------------------------
00837 C Library subroutine xvxxddo
00838 C
00839 C Multiplication of a real scalar with a real vector,
00840 C where the result is stored in the input vector
00841 C     x*v(i) = v(i)
00842 C
00843 C NB Input v vector is overwritten on output
00844 C-----------------------------------------------------------------------
00845 
00846       subroutine xvxxddo (x,v,dim)
00847 
00848       implicit none
00849 
00850       integer dim,i
00851       real*8  v(dim),x
00852 
00853       do i = 1,dim
00854          v(i) = x*v(i)
00855       enddo
00856 
00857       return
00858       end
00859 
00860 C ----------------------------------------------------------------------
00861 C Library subroutine xvxxzzs
00862 C
00863 C Multiplication of a complex scalar with a complex vector,
00864 C where the result is subtracted from a further vector
00865 C     w(i) - x*v(i) = w(i)
00866 C
00867 C NB Input w vector is overwritten on output
00868 C-----------------------------------------------------------------------
00869 
00870       subroutine xvxxzzs (x,v,w,dim)
00871 
00872       implicit none
00873 
00874       integer dim,i
00875       complex*16 v(dim),w(dim),x
00876 
00877       do i = 1,dim
00878          w(i) = w(i)-x*v(i)
00879       enddo
00880 
00881       return
00882       end
00883 
00884 C ----------------------------------------------------------------------
00885 C Library subroutine xqxxzzo
00886 C
00887 C Multiplication of a complex scalar with a quadratic complex matrix,
00888 C where the result is stored in the input matrix
00889 C     x*a(j,i) = a(j,i)
00890 C
00891 C NB Input a matrix is overwritten on output
00892 C-----------------------------------------------------------------------
00893 
00894       subroutine xqxxzzo (x,a,dim)
00895 
00896       implicit none
00897 
00898       integer dim,i,j
00899       complex*16 a(dim,dim),x
00900 
00901       do i = 1,dim
00902          do j = 1,dim
00903             a(j,i) = x*a(j,i)
00904          enddo
00905       enddo
00906 
00907       return
00908       end
00909 
00910 C ----------------------------------------------------------------------
00911 C Library subroutine xqxxdzo
00912 C
00913 C Multiplication of a real scalar with a quadratic complex matrix,
00914 C where the result is stored in the input matrix
00915 C     x*a(j,i) = a(j,i)
00916 C
00917 C NB Input a matrix is overwritten on output
00918 C-----------------------------------------------------------------------
00919 
00920       subroutine xqxxdzo (x,a,dim)
00921 
00922       implicit none
00923 
00924       integer dim,i,j
00925       real*8 x
00926       complex*16 a(dim,dim)
00927 
00928       do i = 1,dim
00929          do j = 1,dim
00930             a(j,i) = x*a(j,i)
00931          enddo
00932       enddo
00933 
00934       return
00935       end
00936 
00937 C ----------------------------------------------------------------------
00938 C Library subroutine xqixdzo
00939 C
00940 C Multiplication of the inverse of a real scalar with a quadratic 
00941 C complex matrix, where the result is stored in the input matrix
00942 C     x*a(j,i) = a(j,i)
00943 C
00944 C NB Input a matrix is overwritten on output
00945 C-----------------------------------------------------------------------
00946 
00947       subroutine xqixdzo (x,a,dim)
00948 
00949       implicit none
00950 
00951       integer dim,i,j
00952       real*8 x,inv
00953       complex*16 a(dim,dim)
00954 
00955       inv=1.0d0/x
00956       do i = 1,dim
00957          do j = 1,dim
00958             a(j,i) = inv*a(j,i)
00959          enddo
00960       enddo
00961 
00962       return
00963       end
00964 
00965 C ----------------------------------------------------------------------
00966 C Library subroutine xmxxzzo
00967 C
00968 C Multiplication of a complex scalar with a rectangular complex matrix,
00969 C where the result is stored in the input matrix
00970 C     x*a(j,i) = a(j,i)
00971 C
00972 C NB Input a matrix is overwritten on output
00973 C-----------------------------------------------------------------------
00974 
00975       subroutine xmxxzzo (x,a,dim1,dim2)
00976 
00977       implicit none
00978 
00979       integer dim1,dim2,i,j
00980       complex*16 a(dim1,dim2),x
00981 
00982       do i = 1,dim2
00983          do j = 1,dim1
00984             a(j,i) = x*a(j,i)
00985          enddo
00986       enddo
00987 
00988       return
00989       end
00990 
00991 C-----------------------------------------------------------------------
00992 C Library subroutine vvtxdd
00993 C
00994 C scalar product of two real vectors:
00995 C     u(i)*v(i)=s
00996 C-----------------------------------------------------------------------
00997 
00998       subroutine vvtxdd (u,v,s,dim)
00999 
01000       implicit none
01001 
01002       integer dim,i
01003       real*8  u(dim),v(dim),s
01004 
01005       s = u(1)*v(1)
01006       do i = 2,dim
01007          s = s+u(i)*v(i)
01008       enddo
01009 
01010       return
01011       end
01012 
01013 C-----------------------------------------------------------------------
01014 C Library subroutine vvtxzz
01015 C
01016 C symmetric product of two complex vectors:
01017 C     u(i)*v(i)=s
01018 C-----------------------------------------------------------------------
01019 
01020       subroutine vvtxzz (u,v,s,dim)
01021 
01022       implicit none
01023 
01024       integer    dim,i
01025       complex*16 u(dim),v(dim),s
01026 
01027       s = u(1)*v(1)
01028       do i = 2,dim
01029          s = s+u(i)*v(i)
01030       enddo
01031 
01032       return
01033       end
01034 
01035 C-----------------------------------------------------------------------
01036 C Library subroutine vvtxzz
01037 C
01038 C symmetric product of two complex vectors (result is added to s):
01039 C     u(i)*v(i)=s
01040 C-----------------------------------------------------------------------
01041 
01042       subroutine vvtxzza (u,v,s,dim)
01043 
01044       implicit none
01045 
01046       integer    dim,i
01047       complex*16 u(dim),v(dim),s
01048 
01049       do i = 1,dim
01050          s = s+u(i)*v(i)
01051       enddo
01052 
01053       return
01054       end
01055 
01056 C-----------------------------------------------------------------------
01057 C Library subroutine vvaxzz
01058 C
01059 C scalar product of two complex vectors:
01060 C     dconjg(u(i))*v(i)=s
01061 C-----------------------------------------------------------------------
01062       subroutine vvaxzz (u,v,s,dim)
01063 
01064       implicit none
01065 
01066       integer     dim,i
01067       complex*16  u(dim),v(dim),s
01068 
01069       s = dconjg(u(1))*v(1)
01070       do i = 2,dim
01071          s = s+dconjg(u(i))*v(i)
01072       enddo
01073 
01074       return
01075       end
01076 
01077 
01078 C-----------------------------------------------------------------------
01079 C Library subroutine vvxazz 
01080 C
01081 C       u(i)*dconjg(v(j)) = m(i,j)
01082 C       Dimensions: d(dim),v(dim),m(dim,dim)
01083 C-----------------------------------------------------------------------
01084       subroutine vvxazz(u,v,m,dim)
01085  
01086       implicit none
01087       
01088       integer dim,i,j
01089       complex*16 u(dim),v(dim),m(dim,dim)
01090 
01091       do i=1,dim
01092          do j=1,dim
01093             m(i,j) = u(i)*dconjg(v(j))
01094          enddo
01095       enddo
01096       
01097       return
01098       end
01099 
01100 
01101 
01102 C-----------------------------------------------------------------------
01103 C Library subroutine qvxxdd
01104 C
01105 C Multiplication of a real quadratic matrix with a real vector
01106 C     a(i,j)*v(j)=w(i)
01107 C-----------------------------------------------------------------------
01108       subroutine qvxxdd (a,v,w,dim)
01109 
01110       implicit none
01111 
01112       integer dim,i,j
01113       real*8  a(dim,dim),v(dim),w(dim)
01114 
01115       do i = 1,dim
01116          w(i) = a(i,1)*v(1)
01117       enddo
01118       do j = 2,dim
01119          do i = 1,dim
01120             w(i) = w(i)+a(i,j)*v(j)
01121          enddo
01122       enddo
01123 
01124       return
01125       end
01126 
01127 C-----------------------------------------------------------------------
01128 C Library subroutine qvxxzz
01129 C
01130 C Multiplication of a complex quadratic matrix with a complex vector
01131 C     a(i,j)*v(j)=w(i)
01132 C-----------------------------------------------------------------------
01133 
01134       subroutine qvxxzz (a,v,w,dim)
01135 
01136       implicit none
01137 
01138       integer     dim,i,j
01139       complex*16  a(dim,dim),v(dim),w(dim)
01140 
01141       do i = 1,dim
01142          w(i) = a(i,1)*v(1)
01143       enddo
01144       do j = 2,dim
01145          do i = 1,dim
01146             w(i) = w(i)+a(i,j)*v(j)
01147          enddo
01148       enddo
01149 
01150       return
01151       end
01152 
01153 C-----------------------------------------------------------------------
01154 C Library subroutine qvxxdd1
01155 C
01156 C Multiplication of a real quadratic matrix with a real vector
01157 C     a(i,j)*v(j)=w(i)
01158 C
01159 C NB phdim is physical (leading) dimension, dim is used dimension 
01160 C-----------------------------------------------------------------------
01161 
01162       subroutine qvxxdd1 (a,v,w,phdim,dim)
01163 
01164       implicit none
01165 
01166       integer phdim,dim,i,j
01167       real*8  a(phdim,dim),v(dim),w(dim)
01168 
01169       do i = 1,dim
01170          w(i) = a(i,1)*v(1)
01171       enddo
01172       do j = 2,dim
01173          do i = 1,dim
01174             w(i) = w(i)+a(i,j)*v(j)
01175          enddo
01176       enddo
01177 
01178       return
01179       end
01180 
01181 C ----------------------------------------------------------------------
01182 C Library subroutine qvtxdd
01183 C
01184 C Multiplication of the transpose of a real quadratic matrix with a 
01185 C real vector
01186 C     a(j,i)*v(j)=w(i)
01187 C-----------------------------------------------------------------------
01188 
01189       subroutine qvtxdd (a,v,w,dim)
01190 
01191       implicit none
01192 
01193       integer dim,i,j
01194       real*8  a(dim,dim),v(dim),w(dim)
01195 
01196       do i = 1,dim
01197          w(i) = a(1,i)*v(1)
01198          do j = 2,dim
01199             w(i) = w(i)+a(j,i)*v(j)
01200          enddo
01201       enddo
01202 
01203       return
01204       end
01205 
01206 C ----------------------------------------------------------------------
01207 C Library subroutine qvtxdd1
01208 C
01209 C Multiplication of the transpose of a real quadratic matrix with a 
01210 C real vector
01211 C     a(j,i)*v(j)=w(i)
01212 C
01213 C NB phdim is physical (leading) dimension, dim is used dimension 
01214 C-----------------------------------------------------------------------
01215 
01216       subroutine qvtxdd1 (a,v,w,phdim,dim)
01217 
01218       implicit none
01219 
01220       integer phdim,dim,i,j
01221       real*8  a(phdim,dim),v(dim),w(dim)
01222 
01223       do i = 1,dim
01224          w(i) = a(1,i)*v(1)
01225          do j = 2,dim
01226             w(i) = w(i)+a(j,i)*v(j)
01227          enddo
01228       enddo
01229 
01230       return
01231       end
01232 
01233 C ----------------------------------------------------------------------
01234 C Library subroutine mvtxdd
01235 C
01236 C Multiplication of the transpose of a real rectangular matrix with a
01237 C real vector
01238 C     a(j,i)*v(j)=w(i)
01239 C
01240 C-----------------------------------------------------------------------
01241 
01242       subroutine mvtxdd (a,v,w,dim1,dim2)
01243 
01244       implicit none
01245 
01246       integer dim1,dim2,i,j
01247       real*8  a(dim1,dim2),v(dim1),w(dim2)
01248 
01249       do i = 1,dim2
01250          w(i) = a(1,i)*v(1)
01251          do j = 2,dim1
01252             w(i) = w(i)+a(j,i)*v(j)
01253          enddo
01254       enddo
01255 
01256       return
01257       end
01258 
01259 C ----------------------------------------------------------------------
01260 C Library subroutine mvtxdd1
01261 C
01262 C Multiplication of the transpose of a real rectangular matrix with a
01263 C real vector
01264 C     a(j,i)*v(j)=w(i)
01265 C
01266 C NB phdim is physical (leading) dimension, dim1-2 is used dimension 
01267 C-----------------------------------------------------------------------
01268 
01269       subroutine mvtxdd1 (a,v,w,phdim,dim1,dim2)
01270 
01271       implicit none
01272 
01273       integer phdim,dim1,dim2,i,j
01274       real*8  a(phdim,phdim),v(dim1),w(dim2)
01275 
01276       do i = 1,dim2
01277          w(i) = a(1,i)*v(1)
01278          do j = 2,dim1
01279             w(i) = w(i)+a(j,i)*v(j)
01280          enddo
01281       enddo
01282 
01283       return
01284       end
01285 
01286 C ----------------------------------------------------------------------
01287 C Library subroutine mvtxzz
01288 C
01289 C Multiplication of the transpose of a complex rectangular matrix with a
01290 C complex vector
01291 C     a(j,i)*v(j)=w(i)
01292 C-----------------------------------------------------------------------
01293 
01294       subroutine mvtxzz (a,v,w,dim1,dim2)
01295 
01296       implicit none
01297 
01298       integer dim1,dim2,i,j
01299       complex*16  a(dim1,dim2),v(dim1),w(dim2)
01300 
01301       do i = 1,dim2
01302          w(i) = a(1,i)*v(1)
01303          do j = 2,dim1
01304             w(i) = w(i)+a(j,i)*v(j)
01305          enddo
01306       enddo
01307 
01308       return
01309       end
01310 
01311 
01312 C ----------------------------------------------------------------------
01313 C Library subroutine mvxxzz
01314 C
01315 C Multiplication of a complex rectangular matrix with a complex vector.
01316 C     a(i,j)*v(j)=w(i)
01317 C-----------------------------------------------------------------------
01318 
01319       subroutine mvxxzz (a,v,w,dim1,dim2)
01320 
01321       implicit none
01322 
01323       integer dim1,dim2,i,j
01324       complex*16  a(dim1,dim2),v(dim2),w(dim1)
01325 
01326       do i = 1,dim1
01327          w(i) = a(i,1)*v(1)
01328       enddo
01329       do j = 2,dim2
01330          do i = 1,dim1
01331             w(i) = w(i)+a(i,j)*v(j)
01332          enddo
01333       enddo
01334 
01335       return
01336       end
01337 
01338 C ----------------------------------------------------------------------
01339 C Library subroutine dvxxdd
01340 C
01341 C Multiplication of a diagonal real matrix with a real vector
01342 C     a(i)*v(i)=w(i)
01343 C-----------------------------------------------------------------------
01344 
01345       subroutine dvxxdd (a,v,w,dim)
01346 
01347       implicit none
01348 
01349       integer dim,i
01350       real*8  a(dim),v(dim),w(dim)
01351 
01352       do i = 1,dim
01353          w(i) = a(i)*v(i)
01354       enddo
01355 
01356       return
01357       end
01358 
01359 C ----------------------------------------------------------------------
01360 C Library subroutine dvxxdz
01361 C
01362 C Multiplication of a diagonal real matrix with a complex vector
01363 C     a(i)*v(i)=w(i)
01364 C-----------------------------------------------------------------------
01365 
01366       subroutine dvxxdz (a,v,w,dim)
01367 
01368       implicit none
01369 
01370       integer dim,i
01371       real*8  a(dim)
01372       complex*16  v(dim),w(dim)
01373 
01374       do i = 1,dim
01375          w(i) = a(i)*v(i)
01376       enddo
01377 
01378       return
01379       end
01380 
01381 C ----------------------------------------------------------------------
01382 C Library subroutine dvxxdzo
01383 C
01384 C Multiplication of a diagonal real matrix with a complex vector
01385 C     a(i)*v(i)=v(i)
01386 C-----------------------------------------------------------------------
01387 
01388       subroutine dvxxdzo (a,v,dim)
01389 
01390       implicit none
01391 
01392       integer dim,i
01393       real*8  a(dim)
01394       complex*16 v(dim)
01395 
01396       do i = 1,dim
01397          v(i) = a(i)*v(i)
01398       enddo
01399 
01400       return
01401       end
01402 
01403 C ----------------------------------------------------------------------
01404 C Library subroutine dvxxddo
01405 C
01406 C Multiplication of a diagonal real matrix with a real vector
01407 C     a(i)*v(i)=v(i)
01408 C-----------------------------------------------------------------------
01409 
01410       subroutine dvxxddo (a,v,dim)
01411 
01412       implicit none
01413 
01414       integer dim,i
01415       real*8  a(dim),v(dim)
01416 
01417       do i = 1,dim
01418          v(i) = a(i)*v(i)
01419       enddo
01420 
01421       return
01422       end
01423 
01424 C-----------------------------------------------------------------------
01425 C Library subroutine qvxxdz
01426 C
01427 C Multiplication of a real quadratic matrix with a complex vector
01428 C     a(i,j)*v(j)=w(i)
01429 C-----------------------------------------------------------------------
01430 
01431       subroutine qvxxdz (a,v,w,dim)
01432 
01433       implicit none
01434 
01435       integer dim,i,j
01436       real*8     a(dim,dim)
01437       complex*16 v(dim),w(dim)
01438 
01439       do i = 1,dim
01440          w(i) = a(i,1)*v(1)
01441       enddo
01442       do j = 2,dim
01443          do i = 1,dim
01444             w(i) = w(i)+a(i,j)*v(j)
01445          enddo
01446       enddo
01447 
01448       return
01449       end
01450 
01451 C-----------------------------------------------------------------------
01452 C Library subroutine qvxxdz1
01453 C
01454 C Multiplication of a real quadratic matrix with a complex vector
01455 C     a(i,j)*v(j)=w(i)
01456 C
01457 C NB phdim is physical (leading) dimension, dim is used dimension 
01458 C-----------------------------------------------------------------------
01459 
01460       subroutine qvxxdz1 (a,v,w,phdim,dim)
01461 
01462       implicit none
01463 
01464       integer    phdim,dim,i,j
01465       real*8     a(phdim,dim)
01466       complex*16 v(dim),w(dim)
01467 
01468       do i = 1,dim
01469          w(i) = a(i,1)*v(1)
01470       enddo
01471       do j = 2,dim
01472          do i = 1,dim
01473             w(i) = w(i)+a(i,j)*v(j)
01474          enddo
01475       enddo
01476 
01477       return
01478       end
01479 
01480 C-----------------------------------------------------------------------
01481 C Library subroutine qvxxzz1
01482 C
01483 C Multiplication of a complex quadratic matrix with a complex vector
01484 C     a(i,j)*v(j)=w(i)
01485 C
01486 C NB phdim is physical (leading) dimension, dim is used dimension 
01487 C-----------------------------------------------------------------------
01488 
01489       subroutine qvxxzz1 (a,v,w,phdim,dim)
01490 
01491       implicit none
01492 
01493       integer    phdim,dim,i,j
01494       complex*16 a(phdim,dim),v(dim),w(dim)
01495 
01496       do i = 1,dim
01497          w(i) = a(i,1)*v(1)
01498       enddo
01499       do j = 2,dim
01500          do i = 1,dim
01501             w(i) = w(i)+a(i,j)*v(j)
01502          enddo
01503       enddo
01504 
01505       return
01506       end
01507 
01508 C-----------------------------------------------------------------------
01509 C Library subroutine qvxxyz
01510 C
01511 C Multiplication of a complex quadratic matrix with a complex vector,
01512 C where the complex matrix is stored as 2 real matrices.
01513 C     a(i,j)*v(j)=w(i)
01514 C-----------------------------------------------------------------------
01515 
01516       subroutine qvxxyz (a,v,w,dim)
01517 
01518       implicit none
01519 
01520       integer dim,i,j
01521       real*8     a(dim,dim,2)
01522       complex*16 v(dim),w(dim)
01523 
01524       do i = 1,dim
01525          w(i) = a(i,1,1)*v(1)+(0,1)*a(i,1,2)*v(1)
01526       enddo
01527       do j = 2,dim
01528          do i = 1,dim
01529             w(i) = w(i)+a(i,j,1)*v(j)+(0,1)*a(i,j,2)*v(j)
01530          enddo
01531       enddo
01532 
01533       return
01534       end
01535 
01536 
 All Namespaces Files Functions Variables