[updated 8.Sep.2008]
Librairie cordom > Fichier adim.f |
SUBROUTINE ADIM (NOMDOM,NMCSTE,NIVIMP)
Auteurs : O.DeBayser (Juillet 1994)
Derniere modification : D.Martin (13 Juillet 1997)
Version 1.0.0
Adimensionalisation des coordonnees du domaine
-- Arguments --
NOMDOM Nom du domaine
NMCSTE Nom de la constante d'adimensionalisation
NIVIMP Niveau d'impression
CHARACTER*(*) NOMDOM,NMCSTE
INTEGER NIVIMP
INCLUDE 'CONTEX'
INCLUDE 'ALLOC'
INTEGER INTDON,INTTYP,KELCHN
INTEGER MCMDOM,MCTRDO,LGERDO,NBDOMK,LGCANO,NCHDOM
& ,MCDONN,MCMDON,LGEDON,NBDONN,INCDON,NCHDON,MCESTE,MCRSTE
& ,NUCSTE,ITYDON,NIVE,ITYPDO
& ,NUDFRO,NUKFRO,JGEOME,JNDMIX,JNDEXC,JDLHRC,NVFRON,JNDEXL
& ,JDLHRL,JVNUML,NVCORC,INUTI2,NBTRDO,JIVDOM,IATRDO
& ,LGCOOR,MCCORE,MCCORA,IACORE,J
REAL RLCSTE
CHARACTER ERCODE*120,NOM*16
COMMON/FORMAH/ERCODE
CALL PRFXMJ (1,'*Adim *')
CALL TBAR6 (ERCODE,'#OMDOM',1,MCMDOM,'#TERDO',1,MCTRDO
& ,'$DONNE',1,MCDONN,'#OMDON',1,MCMDON
& ,'$ECSTE',1,MCESTE,'$RCSTE',1,MCRSTE)
CALL SDEXDB(IST(MCTRDO),LGERDO,NBDOMK,LGCANO,NCHDOM) !utilite
CALL SDEXDB(IST(MCDONN),LGEDON,NBDONN,INCDON,NCHDON) !utilite
Recherche de la constante d'adimensionalisation
NUCSTE=KELCHN(NMCSTE,AST(MCMDON),NBDONN,NCHDON) !utilite
CALL SDEXCO(NUCSTE,IST(MCDONN),ITYDON,NIVE,ITYPDO) !utilite
NOM=NMCSTE
IF(ITYDON.NE.INTDON('CONSTANTE')) CALL BAISE !utilite
*('La donnee de nom '//NOM(:NCHDON)//' n''est pas une constante!') !utilite
IF (ITYPDO.NE.INTTYP('REEL').AND.ITYPDO.NE.INTTYP('ENTIER'))
& CALL BAISE
& ('la constante d''adim. doit etre entiere ou reelle') !utilite
RLCSTE=1.
IF (ITYPDO.EQ.INTTYP ('ENTIER')) THEN !utilite
RLCSTE=REAL(IST(MCESTE+NIVE))
ELSEIF (ITYPDO.EQ.INTTYP ('REEL')) THEN !utilite
RLCSTE=RST(MCRSTE+NIVE)
END IF
Recherche des caracteristiques du domaine frontiere
CALL KLDOMN (NOMDOM,0,0,IST(MCTRDO),AST(MCMDOM),NBDOMG
& ,NUKFRO,IATRDO)
CALL GETDOR (IST(MCTRDO+IATRDO),NUDFRO,NUKFRO,JGEOME,JNDMIX,JNDEXC
& ,JDLHRC,NVFRON,JNDEXL,JDLHRL,JVNUML,NVCORC,INUTI2
& ,NBTRDO,JIVDOM)
Recherche du tableau des coordonnees
CALL TBRR1 (ERCODE,'&CORNE',NVCORC,LGCOOR)
Creation du tableau resultat
CALL TBCREE ('&CORNA',NVCORC,2,LGCOOR,'c')
CALL TBAR2 (ERCODE,'&CORNE',NVCORC,MCCORE,'&CORNA',NVCORC,MCCORA)
Adimensionalisation des coordonnees sur le domaine
IACORE=MCCORE
DO 10 J=MCCORA,MCCORA+LGCOOR-1
RST(J)=RST(IACORE)/RLCSTE
IACORE=IACORE+1
10 CONTINUE
IF(NIVIMP.GT.0) CALL PRCOOR(NDIM,LGCOOR/NDIM,RST(MCCORA)
& ,' Cornoa',NIVIMP,IMPSDR) !prsd
CALL TBSAVE('&CORNE',NVCORC)
CALL TBSAVE('&CORNA',NVCORC)
CALL PRFXMJ (-1,'*Adim *')
END !Adim
adim est appelé dans (5 procédures)