C PB201     SOURCE    MAGN      10/05/18    21:16:30     6675
      SUBROUTINE PB201(XREF,X,PG,FN,GR,FM,GM,ND,NP,MP,NG,NPG,NOM2,ITYPI)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C************************************************************************
C
C     CALCULE LES FONCTIONS DE FORME D'UN : SEG2
C
C
C************************************************************************

      REAL*8 X(NPG),XREF(ND,NP)
      REAL*8 FN(NP,NPG),GR(ND,NP,NPG),PG(NPG)
      REAL*8 FM(MP,NPG),GM(ND,MP,NPG)
      REAL*8 A,B,C,D,U(5),H(5)
      CHARACTER*4 NOM2
C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

      XREF(1,1)=0.D0
      XREF(1,2)=1.D0

      NP2=NP*ND

      CALL CALUHG(U,H,NG)
      A=0.D0
      B=1.D0
      IF(ITYPI.EQ.2)THEN
      X(1)=0.D0
      X(2)=1.D0
      PG(1)=0.5D0
      PG(2)=0.5D0
      ELSE
      CALL CALG1(A,B,NG,H,U,X,PG)
      ENDIF
      DO 1 L=1,NPG
C
      FN(1,L)=1.D0-X(L)
      FN(2,L)=X(L)
      GR(1,1,L)=-1.D0
      GR(1,2,L)=1.D0
 1    CONTINUE

      IF(MP.EQ.1)THEN
      DO 2 L=1,NPG
      FM(1,L)=1.D0
      GM(1,1,L)=0.D0
 2    CONTINUE

      ENDIF
      IF(NOM2.EQ.'P1P1')THEN
      DO 3 L=1,NPG
      FM(1,L)=FN(1,L)
      FM(2,L)=FN(2,L)
      GM(1,1,L)=GR(1,1,L)
      GM(2,1,L)=GR(2,1,L)
      GM(1,2,L)=GR(1,2,L)
      GM(1,2,L)=GR(1,2,L)
 3    CONTINUE
      ENDIF

C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
C     WRITE(6,101)
C     WRITE(6,1002)FN
C     WRITE(6,1002)GR
C     WRITE(6,101)
      RETURN
 1002 FORMAT(10(1X,1PD11.4))
 1001 FORMAT(20(1X,I5))
 101  FORMAT(1X,'... SUB PB201 ... FN,GR,FX,GX ',9(10H..........)/)
C
      END







