Télécharger maxin7.eso

Retour à la liste

Numérotation des lignes :

maxin7
  1. C MAXIN7 SOURCE CB215821 20/11/25 13:34:11 10792
  2. C
  3. subroutine maxin7(ipoin1,ipoin2,ipoin3,montyp,kplus,labs)
  4. c-----------------------------------------------------------------------
  5. c
  6. C objet : min max entre n chpoints (n>1)
  7. c creation : bp, 2014-12-05
  8. c
  9. c-----------------------------------------------------------------------
  10.  
  11. implicit real*8(a-h,o-z)
  12. implicit integer (i-n)
  13. character*(8) montyp
  14.  
  15.  
  16. -INC PPARAM
  17. -INC CCOPTIO
  18. -INC SMCHPOI
  19. -INC SMELEME
  20.  
  21. C-----INITIALISATION----------------------------------------------------
  22.  
  23. MCHPO1=ipoin1
  24. SEGINI,MCHPOI=MCHPO1
  25. ipoin3 = MCHPOI
  26. NSOUPO=IPCHP(/1)
  27. DO 101 ISOUPO = 1,NSOUPO
  28. MSOUP1 = IPCHP(ISOUPO)
  29. SEGINI,MSOUPO=MSOUP1
  30. NC=NOCOMP(/2)
  31. IPCHP(ISOUPO)=MSOUPO
  32. MPOVA1=IPOVAL
  33. SEGINI,MPOVAL=MPOVA1
  34. IPOVAL=MPOVAL
  35. 101 CONTINUE
  36.  
  37. c-----debut de boucle sur MCHPO2
  38. 1 MCHPO2=ipoin2
  39. SEGACT,MCHPO2
  40. NSOUP2=MCHPO2.IPCHP(/1)
  41. IF (NSOUP2.NE.NSOUPO) GOTO 990
  42.  
  43. DO 201 ISOUPO = 1,NSOUPO
  44.  
  45. MSOUPO = IPCHP(ISOUPO)
  46. MSOUP2 = MCHPO2.IPCHP(ISOUPO)
  47. SEGACT,MSOUP2
  48.  
  49. c --ON TESTE SI 2 EST TOUT PAREIL--
  50. IF(NOCOMP(/2).NE.NC) GOTO 991
  51. DO 211 IC=1,NC
  52. IF(NOCOMP(IC).NE.MSOUP2.NOCOMP(IC)) GOTO 991
  53. 211 CONTINUE
  54. IPT2=MSOUP2.IGEOC
  55. IF(IPT2.NE.IGEOC) THEN
  56. * on se donne une chance : meleme avec les meme noeuds dans le
  57. * meme ordre mais pointeurs differents
  58. MELEME=IGEOC
  59. SEGACT,MELEME,IPT2
  60. NBELEM=NUM(/2)
  61. IF(NBELEM.NE.IPT2.NUM(/2)) GOTO 992
  62. DO IB=1,NBELEM
  63. IF(NUM(1,IB).NE.IPT2.NUM(1,IB)) GOTO 992
  64. ENDDO
  65. ENDIF
  66.  
  67. C --ON FAIT LE TRAVAIL--
  68. MPOVAL=IPOVAL
  69. N=VPOCHA(/1)
  70. MPOVA2=MSOUP2.IPOVAL
  71. SEGACT,MPOVA2
  72. IF( kplus.eq.1) THEN
  73. IF (labs.eq.0) THEN
  74. DO 301 j=1,NC
  75. DO 301 i=1,N
  76. VPOCHA(i,j)=MAX(VPOCHA(i,j),MPOVA2.VPOCHA(i,j))
  77. 301 CONTINUE
  78. ELSE
  79. DO 3010 j=1,NC
  80. DO 3010 i=1,N
  81. VPOCHA(i,j)=MAX(ABS(VPOCHA(i,j)),ABS(MPOVA2.VPOCHA(i,j)))
  82. 3010 CONTINUE
  83. ENDIF
  84. ELSE
  85. IF (labs.eq.0) THEN
  86. DO 302 j=1,NC
  87. DO 302 i=1,N
  88. VPOCHA(i,j)=MIN(VPOCHA(i,j),MPOVA2.VPOCHA(i,j))
  89. 302 CONTINUE
  90. ELSE
  91. DO 3020 j=1,NC
  92. DO 3020 i=1,N
  93. VPOCHA(i,j)=MIN(ABS(VPOCHA(i,j)),ABS(MPOVA2.VPOCHA(i,j)))
  94. 3020 CONTINUE
  95. ENDIF
  96. ENDIF
  97.  
  98. 201 CONTINUE
  99.  
  100.  
  101. call lirobj(montyp,ipoin2,0,iretou)
  102. if(iretou.ne.0) go to 1
  103.  
  104.  
  105. C-----FIN NORMALE-------------------------------------------------------
  106. DO 801 ISOUPO = 1,NSOUPO
  107. MSOUPO = IPCHP(ISOUPO)
  108. MPOVAL=IPOVAL
  109. 801 CONTINUE
  110. RETURN
  111.  
  112.  
  113. C-----ERREUR------------------------------------------------------------
  114. 990 CONTINUE
  115. WRITE(IOIMP,*) 'NOMBRE DE ZONES DIFFERENT'
  116. WRITE(IOIMP,*) NSOUP2,NSOUPO
  117. GOTO 999
  118. 991 CONTINUE
  119. WRITE(IOIMP,*) 'COMPOSANTES DIFFERENTES'
  120. WRITE(IOIMP,*) NOCOMP(IC),' different de ',MSOUP2.NOCOMP(IC)
  121. GOTO 999
  122. 992 CONTINUE
  123. WRITE(IOIMP,*) 'SUPPORTS GEOMETRIQUES DIFFERENTS'
  124. WRITE(IOIMP,*) IPT2,' different de ',IGEOC
  125. GOTO 999
  126. 999 CONTINUE
  127. CALL ERREUR(214)
  128. SEGSUP,MCHPOI
  129. RETURN
  130.  
  131. END
  132.  
  133.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales