Download trjpor.eso

Back to the list

   1 : C TRJPOR    SOURCE    PV        09/03/13    21:17:12     6328           
   2 :       SUBROUTINE TRJPOR(IZPOR,IZVIT,MELEME)
   3 : C*****************************************************************
   4 : C     TRAITEMENT DE LA POROSITE (OPERATEUR TRAJ)
   5 : C  Divise la vitesse (ou le flux ) par la porosite par element
   6 : C      Controle la coherence des données
   7 : C
   8 : C     IZPOR pointeur du MCHAML contenant la porosité
   9 : C     IZVIT pointeur du segment servant a decrire les vitesses
  10 : C     MELEME pointeur du maillage support( du DOMAINE)
  11 : C *****************************************************************
  12 :       IMPLICIT INTEGER(I-N)
  13 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
  14 : C                                                                               
  15 : C                                                                               
  16 :       SEGMENT IZVIT 
  17 :            REAL*8 TEMTRA(NVIPT)
  18 :            INTEGER IPUN(NBS),IDUN(NBS),IPVPT(NVIPT),IFORML
  19 :       ENDSEGMENT
  20 : C             IDUN(I) nombre d elements avant le sous maillage I
  21 : C             IPVPT  pointeurs de izvpt pour chaque pas de temps
  22 :       SEGMENT IZVPT
  23 :            INTEGER IPUN1(NBS),IPUMAX
  24 :       ENDSEGMENT
  25 : C
  26 :       SEGMENT IZUN
  27 :            REAL*8 UN(I1,I2,I3)
  28 :       ENDSEGMENT
  29 :       POINTEUR IZUN1.IZUN,IZUN2.IZUN
  30 : -INC SMELEME
  31 : -INC SMCHAML
  32 : -INC CCOPTIO
  33 : C
  34 : C
  35 :       SEGACT IZVIT ,MELEME
  36 :       MCHELM=IZPOR
  37 :       SEGACT MCHELM
  38 :       NBS=IMACHE(/1)
  39 :       NBSOUS=LISOUS(/1)
  40 :       NBS1=NBSOUS
  41 : 
  42 :       IF(NBSOUS.EQ.0)NBS1=1
  43 :       IF(NBS.NE.NBS1)GO TO 95
  44 :       NVIPT=TEMTRA(/1)
  45 :       DO 50 IPT=1,NVIPT
  46 :             IZVPT=IPVPT(IPT)
  47 :             SEGACT IZVPT
  48 :             IPT1=MELEME
  49 :             DO 10 ISOUS=1,NBS
  50 :             IF(NBSOUS.GT.0)IPT1=LISOUS(ISOUS)
  51 :             IF(IPT1.NE.IMACHE(ISOUS))GO TO 95
  52 :             IF(INFCHE(ISOUS,6).NE.2)GO TO 95
  53 :             IZUN=IPUN1(ISOUS)
  54 :             SEGACT IZUN*MOD
  55 :             MCHAML=ICHAML(ISOUS)
  56 :             SEGACT MCHAML
  57 :             N2=IELVAL(/1)
  58 :             IF(N2.NE.1)GO TO 95
  59 :             MELVAL=IELVAL(1)
  60 :             SEGACT MELVAL
  61 :             I1=UN(/1)
  62 :             I2=UN(/2)
  63 :             I3=UN(/3)
  64 :             N1EL=VELCHE(/2)
  65 :             IF(N1EL.NE.I3)GO TO 95
  66 :             DO 30 J3=1,I3
  67 :                 DO 20 J2=1,I2
  68 :                       DO 15 J1=1,I1
  69 :                             UN(J1,J2,J3)=UN(J1,J2,J3)/VELCHE(1,J3)
  70 :    15                 CONTINUE
  71 :    20           CONTINUE
  72 :    30       CONTINUE
  73 :             SEGDES MELVAL,MCHAML,IZUN,IPT1
  74 :    10       CONTINUE
  75 :             SEGDES IZVPT
  76 :    50 CONTINUE
  77 :       SEGDES MCHELM,IZVIT
  78 :       RETURN
  79 :    95 CONTINUE
  80 :       WRITE(IOIMP,*)' POROSITE '
  80 :       CALL ERREUR(609)
  81 :       RETURN
  82 :       END
  83 :  
  84 :  
  85 :  
  86 :  
  87 :  
  88 :  

© Cast3M 2003 - All rights reserved.
Disclaimer