C NORMA3 SOURCE CHAT 05/01/13 01:59:59 5004 SUBROUTINE NORMA3(ICHPOI,IPLMOT,MOTCLE,IFLUI,COEFP,COEFPI,IPLAC1, 1 PGRAND) ************************************************************************ * * N O R M A 3 * ----------- * * FONCTION: * --------- * * NORMER UN 'CHPOINT EN RAMENANT SA PLUS GRANDE VALEUR A 1 * ON NE CREE PAS UN NOUVEAU CHPOINT * * MODE D'APPEL: * ------------- * * CALL NORMA3 (ICHPOI,IPLMOT,MOTCLE,IFLUI,COEFP,COEFPI,IPLAC1,PGRAND * * ARGUMENTS: (E)=ENTREE (S)=SORTIE * ---------- * * ICHPOI ENTIER (E) POINTEUR SUR L'OBJET 'CHPOINT' A NORMER. * IPLMOT ENTIER (E) VOIR LE S.P. "MAXIM1". * MOTCLE CHARACTER (E) VOIR LE S.P. "MAXIM1". * IFLUI ENTIER (E) IL Y A DES COEF POUR P ET PI (0 SINON) * COEFP REEL (E) COEFFICIENT A APPLIQUER A LA COMPOSANTE P * COEFPI REEL (E) COEFFICIENT A APPLIQUER A LA COMPOSANTE PI * IPLAC1 ENTIER (E) POINTEUR SUR SEGMENT MTEMP2 OU ZERO(0) * PGRAND REEL (S) COEFFICIENT DE NORMALISATION * * SOUS-PROGRAMMES APPELES: * ------------------------ * * MAXIM4,MAXIM1, ERREUR. * * AUTEUR, DATE DE CREATION: * ------------------------- * * MARTINE FARVACQUE 10 JUIN 86 * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC SMCHPOI * SEGMENT/MTEMP2/ (MAXSOU,MAXN,MAXNC) * (REMPLI DANS LE S.P. "MAXIM1") * REAL*8 PGRAND,COEFP,COEFPI CHARACTER*4 MOTCLE * * --- NORMALISATION DU FLUIDE IF(IFLUI.NE.0) CALL MAXIM4 (ICHPOI,COEFP,COEFPI) * * -- RECHERCHE DU MAXIMUM -- IF(IPLAC1.EQ.0) THEN SEGINI MTEMP2 ELSE MTEMP2=IPLAC1 SEGACT MTEMP2*MOD MAXSOU=0 MAXN=0 MAXNC=0 ENDIF * CALL MAXIM1 (ICHPOI,IPLMOT,MOTCLE,MTEMP2, PGRAND) IF (IERR .NE. 0) RETURN IF (PGRAND .EQ. 0.D0) THEN NUMERR = 150 CALL ERREUR (NUMERR) RETURN END IF * * -- NORMALISATION -- * SEGACT,MTEMP2 * MCHPOI=ICHPOI SEGACT MCHPOI NSOUPO = IPCHP(/1) * DO 100 IB100=1,NSOUPO * MSOUPO = IPCHP(IB100) SEGACT MSOUPO NC = NOCOMP(/2) MPOVAL = IPOVAL SEGACT MPOVAL*MOD N = VPOCHA(/1) * DO 120 IB120=1,NC DO 130 IB130=1,N VPOCHA(IB130,IB120) = VPOCHA(IB130,IB120) / PGRAND 130 CONTINUE 120 CONTINUE IF(IB100 .EQ. MAXSOU) VPOCHA(MAXN,MAXNC) = 1.D0 * SEGDES,MPOVAL,MSOUPO * 100 CONTINUE * IF(IPLAC1.EQ.0) SEGSUP MTEMP2 SEGDES,MCHPOI RETURN END