Download lineat.eso

Back to the list

   1 : C LINEAT    SOURCE    PV        09/03/12    21:27:31     6325           
   2 : 
   3 : C=======================================================================
   4 : C=                           L I N E A T                               =
   5 : C=                           -----------                               =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=   Ce sousprogramme linearise un champ par element de temperatures   =
  10 : C=   pour les noeuds milieux des elements (s'ils existent).            =
  11 : C=                                                                     =
  12 : C=  Parametres :  (E)=Entree   (S)=Sortie                              =
  13 : C=  ------------                                                       =
  14 : C=   IPCHEL  (E/S)  Pointeur MCHELM temperatures linearisees en sortie =
  15 : C=                                                                     =
  16 : C=  Remarque :  Ce segment est DESACTIVE en sortie du sousprogramme.   =
  17 : C=======================================================================
  18 : 
  19 :       SUBROUTINE LINEAT (IPCHEL)
  20 : 
  21 :       IMPLICIT INTEGER(I-N)
  22 :       IMPLICIT REAL*8 (A-H,O-Z)
  23 : 
  24 : -INC SMELEME
  25 : -INC SMCHAML
  26 : 
  27 :       MCHELM=IPCHEL
  28 :       SEGACT,MCHELM
  29 :       DO i=1,imache(/1)
  30 :         meleme=imache(i)
  31 :         SEGACT,meleme
  32 :         IF (itypel.NE. 3.AND.itypel.NE. 6.AND.itypel.NE. 10.AND.
  33 :      .      itypel.NE.15.AND.itypel.NE.17) GOTO 1
  34 :         nbelt=num(/2)
  35 :         mchaml=ichaml(i)
  36 :         SEGACT,mchaml
  37 :         DO j=1,nomche(/2)
  38 :           IF (nomche(j).NE.'T   ') GOTO 2
  39 :           IF (typche(j).NE.'REAL*8') GOTO 2
  40 :           melval=ielval(j)
  41 :           SEGACT,melval*MOD
  42 :           IF (velche(/1)*velche(/2).NE.1) THEN
  43 :             IF (itypel.EQ.3.and.velche(/1).eq.3) THEN
  44 :               DO iel=1,nbelt
  45 :                 velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  46 :               ENDDO
  47 :             ELSE IF (itypel.EQ.6.and.velche(/1).eq.6) THEN
  48 :               DO iel=1,nbelt
  49 :                 velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  50 :                 velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel))
  51 :                 velche(6,iel)=0.5*(velche(5,iel)+velche(1,iel))
  52 :               ENDDO
  53 :             ELSE IF (itypel.EQ.10.and.velche(/1).eq.8) THEN
  54 :               DO iel=1,nbelt
  55 :                 velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  56 :                 velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel))
  57 :                 velche(6,iel)=0.5*(velche(5,iel)+velche(7,iel))
  58 :                 velche(8,iel)=0.5*(velche(7,iel)+velche(1,iel))
  59 :               ENDDO
  60 :             ELSE IF (itypel.EQ.15.and.velche(/1).eq.20) THEN
  61 :               DO iel=1,nbelt
  62 :                 velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel))
  63 :                 velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel))
  64 :                 velche( 6,iel)=0.5*(velche( 5,iel)+velche( 7,iel))
  65 :                 velche( 8,iel)=0.5*(velche( 7,iel)+velche( 1,iel))
  66 :                 velche( 9,iel)=0.5*(velche( 1,iel)+velche(13,iel))
  67 :                 velche(10,iel)=0.5*(velche( 3,iel)+velche(15,iel))
  68 :                 velche(11,iel)=0.5*(velche( 5,iel)+velche(17,iel))
  69 :                 velche(12,iel)=0.5*(velche( 7,iel)+velche(19,iel))
  70 :                 velche(14,iel)=0.5*(velche(13,iel)+velche(15,iel))
  71 :                 velche(16,iel)=0.5*(velche(15,iel)+velche(17,iel))
  72 :                 velche(18,iel)=0.5*(velche(17,iel)+velche(19,iel))
  73 :                 velche(20,iel)=0.5*(velche(19,iel)+velche(13,iel))
  74 :               ENDDO
  75 :             ELSE IF (itypel.EQ.17.and.velche(/1).eq.15) THEN
  76 :               DO iel=1,nbelt
  77 :                 velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel))
  78 :                 velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel))
  79 :                 velche( 6,iel)=0.5*(velche( 5,iel)+velche( 1,iel))
  80 :                 velche( 7,iel)=0.5*(velche( 1,iel)+velche(10,iel))
  81 :                 velche( 8,iel)=0.5*(velche( 3,iel)+velche(12,iel))
  82 :                 velche( 9,iel)=0.5*(velche( 5,iel)+velche(14,iel))
  83 :                 velche(11,iel)=0.5*(velche(10,iel)+velche(12,iel))
  84 :                 velche(13,iel)=0.5*(velche(12,iel)+velche(14,iel))
  85 :                 velche(15,iel)=0.5*(velche(14,iel)+velche(10,iel))
  86 :               ENDDO
  87 :             ENDIF
  88 :           ENDIF
  89 :           SEGDES,melval
  90 :  2        CONTINUE
  91 :         ENDDO
  92 :         SEGDES,mchaml
  93 :  1      SEGDES,meleme
  94 :       ENDDO
  95 :       SEGDES,MCHELM
  96 : 
  97 :       RETURN
  98 :       END
  99 : 
 100 :  
 101 :  
 102 :  
 103 :  
 104 :  

© Cast3M 2003 - All rights reserved.
Disclaimer