[updated 7.Jan.2010]

Librairie ef3d > Fichier selkco.f

Qui appelle selkco ?

line
      SUBROUTINE SELKCO (K,NDIM,CORLOC)
line
  Auteur : D.Martin (Janvier 2000)
  Derniere modification : D.Martin (15 decembre 2009)
  Version 3
 
  Coordonnees des noeuds de l'element de reference pour le segment de
  Lagrange (ordre k) a (k+1) noeuds aux abscisses equidistantes ou 
  aux abcsisses de Gauss-Lobatto.
 
 -- Arguments --
  K      pour segment de type k
    k=  1 a  99  --> segment de Lagrange P0 a k+1 noeuds equidistants
    k=101 a 102  --> segment de Lagrange P0 a 2 ou 3 noeuds equi. ou GL
    k=103 a 199  --> segment de Lagrange P0 a k+1 noeuds de Gauss-Lobatto
  NDIM   dimension d'espace
  CORLOC tableau des coordonnees des noeuds
line
      IMPLICIT NONE
      INTEGER K,NDIM
      REAL    CORLOC(NDIM,*)
 
      INTEGER LAGDMX
      PARAMETER ( LAGDMX = 100 )
      DOUBLE PRECISION COGAUS((LAGDMX-1)/2),POGAUS((LAGDMX-1)/2)
      INTEGER J,KNEW
      REAL    COR,UNSURK
line
   RAPPEL : Les noeuds sont ranges comme suit
 
      2----1  2---3---1  2---4---3---1  2---5---4---3---1  2---6---5---4---3---1
 
        k=1      k=2          k=3              k=4                  k=5
 
   i.e. les points internes son ranges par abscisse decroissante
   et le point numero 1 est le point d'abcisse 1.; 
      le point numero 2 est le point d'abcisse 0,;
      le point numero 3 est a l'abcisse 1-1/k pour les abscisses equidistantes;
                        est le point de Gauss-Lobatto de plus grande abscisse
                  differente de 1 pour les noeuds aux points de Gauss-Lobatto. 
 
      KNEW=K
      IF (KNEW.GT.LAGDMX) KNEW=KNEW-LAGDMX
 
      IF (KNEW.EQ.0) THEN
 
         Point milieu
 
         CORLOC(1,1)=1./2
 
      ELSEIF (KNEW.LE.2.OR.K.LE.LAGDMX) THEN
 
         Abcsisses equidistantes (0 < k < 103 )
 
         COR=1.
         UNSURK=1./KNEW
         CORLOC(1,1)=1.
         CORLOC(1,2)=0.
         DO 1 J=3,KNEW+1
            COR=COR-UNSURK
            CORLOC(1,J)=COR
1        CONTINUE
 
      ELSEIF (K.LT.2*LAGDMX) THEN
 
         Abcsisses de Gauss-Lobatto ( 102 < k < 200)
         Version >= 3
         CORLOC(1,1)=1.
         CORLOC(1,2)=0.
 
         CALL GAULOB (KNEW+1,COGAUS,POGAUS)
 
         DO 2 J=1,KNEW/2
           CORLOC(1,J+2) = (COGAUS(J)+1.)/2.
           CORLOC(1,KNEW+2-J) = 1. - CORLOC(1,J+2) 
2        CONTINUE
 *       VERSION < 3
 
         CALL GAUSLO (KNEW+1,COGAUS,POGAUS)
 *
         DO 2 J=3,(KNEW+4)/2
             CORLOC(1,J)=1.-COGAUS(J-2)
             CORLOC(1,KNEW+4-J)=COGAUS(J-2)
 2        CONTINUE
      ENDIF
line
  File history
  Version 3 : D.Martin & L.Goudenege (14 decembre 2009)
  - version incorporee dans Melina
  Version 3 : L.Goudenege (3 avril 2009)
  - generalisation a tous degres (limite au degre 100 !)
  Version 2 : D.Martin (04 juillet 2005)
  - ajout des noeuds aux points de Gauss-Lobatto de degree 11 a 20, 24, 32, 40
  Version 0 : D.Martin & G. Vial (30 Août 2001)
line
      END                                                               !SelkCo
line
top

selkco est appelé dans (5 procédures)

elemco.f (ef3d) he202c.f (ef3d) helkco.f (ef3d)
qulkco.f (ef3d) seglkb.f (ef3d)  

top