pridua
C PRIDUA SOURCE CB215821 20/11/25 13:36:46 10792 ************************************************************************ * NOM : PRIDUA * DESCRIPTION : Indique si un champ est primal ou dual ************************************************************************ * APPELE PAR : pjblch.eso ************************************************************************ * ENTREES : ICHP1 = pointeur vers le CHPOINT * SORTIES : ICOD1 = 0 si le CHPOINT est vide ou si toutes les * composantes sont a la fois primales et duales * (i.e. elles sont dans NOMDD et aussi dans NOMDU) * = 1 s'il n'y a que des primales * = 2 s'il n'y a que des duales * = -1 s'il y a a la fois des primales et des duales * IPOS1 contient la position dans NOMDD si ICOD1 vaut 0 ou 1, * dans NOMDU si ICOD1 vaut 0 ou 2 * (vaut 0 si ICOD1 vaut -1) ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMLENTI -INC CCHAMP CHARACTER*(LOCOMP) MOCOMP * ICOTY1=0 * JG=LNOMDD SEGINI,MLENTI JG=0 * MCHPO1=ICHP1 SEGACT,MCHPO1 * NSOUP1=MCHPO1.IPCHP(/1) DO J1=1,NSOUP1 MSOUP1=MCHPO1.IPCHP(J1) SEGACT,MSOUP1 * NCO1=MSOUP1.NOCOMP(/2) DO 10 K1=1,NCO1 * * ON CHERCHE LA COMPOSANTE DANS NOMDD ET AUSSI DANS NOMDU * (EN MECANIQUE DES FLUIDES, LE MEME NOM EST PARFOIS DONNE * A LA PRIMALE ET A LA DUALE) MOCOMP=MSOUP1.NOCOMP(K1) ICO1=0 DO IDD=1,LNOMDD IF (MOCOMP.EQ.NOMDD(IDD)) THEN ICO1=1 IPO1=IDD GOTO 20 ENDIF ENDDO 20 CONTINUE DO IDU=1,LNOMDU IF (MOCOMP.EQ.NOMDU(IDU)) THEN ICO1=ICO1+2 IPO1=IDU GOTO 30 ENDIF ENDDO 30 CONTINUE * * => LA COMPOSANTE N'EXISTE PAS DANS CCHAMP IF (ICO1.EQ.0) THEN MOTERR=MOCOMP RETURN * * => LA COMPOSANTE EST DANS LES DEUX LISTES ELSEIF (ICO1.EQ.3) THEN GOTO 11 ENDIF * IF (ICOTY1.EQ.0) ICOTY1=ICO1 IF (ICOTY1.NE.ICO1) THEN ICOD1=-1 IPOS1=0 RETURN ENDIF * * Incrementation de MLENTI 11 CONTINUE DO L1=1,JG IF (IPO1.EQ.LECT(L1)) GOTO 10 ENDDO JG=JG+1 LECT(JG)=IPO1 * 10 CONTINUE ENDDO * ICOD1=ICOTY1 IPOS1=MLENTI SEGADJ,MLENTI SEGDES,MLENTI * RETURN * END * *
© Cast3M 2003 - Tous droits réservés.
Mentions légales