[updated 29.Mar.2004]
SUBROUTINE PROEXT (NDIM,VEC23,VEC1)
Auteur : D.Martin (Avril 1988)
Derniere modification : D.Martin (28 Decembre 2000)
Version 1.0.1
Completion d'une famille libre de NDIM-1 vecteurs pour obtenir une base
de R**NDIM.
La base (VEC1,VEC23(1)[,VEC23(2)]) est orthogonale et directe.
- Si NDIM = 2 VEC1(1)= VEC23(2)
-- 2 =-VEC23(1)
- Si NDIM = 3 VEC1 est le produit exterieur des vecteurs
VEC23(.,1) et VEC23(.,2) (dans cet ordre)
-- Arguments d'entree --
NDIM dimension d'espace
VEC23 vecteur(s) de la famille libre a completer
-- Argument de sortie
VEC1 vecteur resultat (1er vecteur de la base directe complete)
IMPLICIT NONE
INTEGER NDIM
REAL VEC23(NDIM,*),VEC1(*)
CHARACTER ERRCAR*120
COMMON/FORMAH/ERRCAR
IF (NDIM.EQ.2) THEN
VEC1(1)= VEC23(2,1)
VEC1(2)=-VEC23(1,1)
ELSEIF (NDIM.EQ.3) THEN
VEC1(1)=VEC23(2,1)*VEC23(3,2)-VEC23(3,1)*VEC23(2,2)
VEC1(2)=VEC23(3,1)*VEC23(1,2)-VEC23(1,1)*VEC23(3,2)
VEC1(3)=VEC23(1,1)*VEC23(2,2)-VEC23(2,1)*VEC23(1,2)
ELSEIF (NDIM.EQ.1) THEN
VEC1(1)=1.
ELSE
GOTO 10000
ENDIF
RETURN
10000 CALL ENCLER (NDIM,ERRCAR(:3)) !Utilite
CALL BAISE ('*ProExt* (Utiliter): Calcul de produit exterieur'
&//'demande pour NDIM ='//ERRCAR(:3)//' !') !Utilite
END !Proext
proext est appelé dans (3 procédures)