[updated 8.Sep.2008]
Librairie sdexplo > Fichier mksymg.f |
SUBROUTINE MKSYMG (SYM,VAR,NIVIMP)
Auteur: O.DeBayser (Fevrier 1996)
Derniere modification : D.Martin (30 Juin 1997)
Modification de la nature des Symetries ou Antisymetries
-- Arguments d'entree --
SYM chaine de caractere SYMETRIE, ou ANTISYMETRIE,
ou "quelconque" pour pas de symetrie
VAR variable d'espace pour laquelle le caractere symetrique est modifie
NIVIMP niveau d'impression
-- Codage du parametre ISYMGR --
La puissance de 10 indique la variable d'espace rangee de G a D
Le poids correspondant indique si c'est : Symetrique 2
Antisymetrique 1
Rien 0
CHARACTER*(*) SYM,VAR
INTEGER NIVIMP
INCLUDE 'ALLOC'
INCLUDE 'CONTEX'
CHARACTER ERCODE*120
COMMON/FORMAH/ ERCODE
CALL PRFXMJ (1,'*Mksymg*')
CALL TBAR1 (ERCODE,'#ARIAB',1,MCVARE)
NUVAR=KELCHN (VAR,AST(MCVARE),NDIM,NBCNVE) !Utilite
IF (NUVAR.EQ.0) GOTO 99999
Definition de la symetrie demandee
IF (SYM(1:4).EQ.'SYME') THEN
ISYM=2
IF (NIVIMP.GT.0.AND.IMPMES.GT.0)
& WRITE (IMPMES,10000) '*MkSymg*','Symetrie',VAR
ELSEIF (SYM(1:4).EQ.'ANTI') THEN
ISYM=1
IF (NIVIMP.GT.0.AND.IMPMES.GT.0)
& WRITE (IMPMES,10000) '*MkSymg*','Anti-Symetrie',VAR
ELSE
ISYM=0
IF (NIVIMP.GT.0.AND.IMPMES.GT.0)
& WRITE (IMPMES,10000) '*MkSymg*','Pas de Symetrie',VAR
ENDIF
Definition de la symetrie a annuler
IDIV=10**NDIM
ISYMG=ISYMGR
DO 2 I=1,NUVAR
IDIV=IDIV/10
ISYMAV=ISYMG/IDIV
ISYMG=ISYMG-IDIV*ISYMAV
2 CONTINUE
Mise a jour de l'indice des symetries
ISYMGR=ISYMGR+(10**(NDIM-NUVAR))*(ISYM-ISYMAV)
99999 CALL PRFXMJ (-1,'*Mksymg*')
10000 FORMAT(T2,A8,' Modification des symetries pour la fct. de Green: '
&,A,' en la variable ' ,A)
END !Mksymg