1! 2! CalculiX - A 3-dimensional finite element program 3! Copyright (C) 1998-2021 Guido Dhondt 4! 5! This program is free software; you can redistribute it and/or 6! modify it under the terms of the GNU General Public License as 7! published by the Free Software Foundation(version 2); 8! 9! 10! This program is distributed in the hope that it will be useful, 11! but WITHOUT ANY WARRANTY; without even the implied warranty of 12! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13! GNU General Public License for more details. 14! 15! You should have received a copy of the GNU General Public License 16! along with this program; if not, write to the Free Software 17! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18! 19! y=A*x for real sparse antisymmetric matrices, 20! i.e. the transpose is the negative matrix: A^T=-A 21! 22! storage of the matrix: 23! au: first lower triangle 24! ad: diagonal terms 25! 26 subroutine op_corio(n,x,y,ad,au,jq,irow) 27! 28 implicit none 29! 30 integer irow(*),n,j,l,i,jq(*) 31 real*8 y(*),x(*),au(*),ad(*) 32! 33! diagonal terms 34! 35 do i=1,n 36 y(i)=ad(i)*x(i) 37 enddo 38! 39! off-diagonal terms 40! 41 do j=1,n 42 do l=jq(j),jq(j+1)-1 43 i=irow(l) 44 y(i)=y(i)+au(l)*x(j) 45 y(j)=y(j)-au(l)*x(i) 46 enddo 47 enddo 48! 49 return 50 end 51