1
!-------------------------------------------------------------------------------
3
! This file is part of the Code_Saturne Kernel, element of the
4
! Code_Saturne CFD tool.
6
! Copyright (C) 1998-2009 EDF S.A., France
8
! contact: saturne-support@edf.fr
10
! The Code_Saturne Kernel is free software; you can redistribute it
11
! and/or modify it under the terms of the GNU General Public License
12
! as published by the Free Software Foundation; either version 2 of
13
! the License, or (at your option) any later version.
15
! The Code_Saturne Kernel is distributed in the hope that it will be
16
! useful, but WITHOUT ANY WARRANTY; without even the implied warranty
17
! of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
! GNU General Public License for more details.
20
! You should have received a copy of the GNU General Public License
21
! along with the Code_Saturne Kernel; if not, write to the
22
! Free Software Foundation, Inc.,
23
! 51 Franklin St, Fifth Floor,
24
! Boston, MA 02110-1301 USA
26
!-------------------------------------------------------------------------------
31
( ncelet , ncel , isqrt , &
32
va1 , vb1 , va2 , vb2 , va3 , vb3 , &
33
vavb1 , vavb2 , vavb3 )
35
!===============================================================================
39
! CALCUL SIMULTANE DE 3 PRODUITS SCALAIRES
41
! VAPVB = VA.VB OU \/ VA.VB SI ISQRT=1
43
!-------------------------------------------------------------------------------
45
!__________________.____._____.________________________________________________.
46
! name !type!mode ! role !
47
!__________________!____!_____!________________________________________________!
48
! ncelet ! i ! <-- ! number of extended (real + ghost) cells !
49
! ncel ! i ! <-- ! number of cells !
50
! isqrt ! e ! <-- ! indicateur = 1 pour prendre la racine !
51
! va1(), vb1() ! tr ! <-- ! premiers vecteurs a multiplier !
52
! va2(), vb2() ! tr ! <-- ! seconds vecteurs a multiplier !
53
! va3(), vb3() ! tr ! <-- ! troisiemes vecteurs a multiplier !
54
! vavb1 ! r ! --> ! premier produit scalaire !
55
! vavb2 ! r ! --> ! second produit scalaire !
56
! vavb3 ! r ! --> ! troisieme produit scalaire !
57
!__________________!____!_____!________________________________________________!
59
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
60
! L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
61
! MODE : <-- donnee, --> resultat, <-> Donnee modifiee
62
! --- tableau de travail
63
!===============================================================================
67
!===============================================================================
69
!===============================================================================
74
!===============================================================================
78
integer ncelet,ncel,isqrt
79
double precision vavb1, vavb2, vavb3
80
double precision va1(ncelet),vb1(ncelet)
81
double precision va2(ncelet),vb2(ncelet)
82
double precision va3(ncelet),vb3(ncelet)
87
double precision vavb(3)
93
!===============================================================================
97
vavb(1) = ddot(ncel, va1, incx, vb1, incy)
98
vavb(2) = ddot(ncel, va2, incx, vb2, incy)
99
vavb(3) = ddot(ncel, va3, incx, vb3, incy)
101
if (irangp.ge.0) then
103
call parrsm (nvavb, vavb)