Télécharger trladj.eso

Retour à la liste

Numérotation des lignes :

trladj
  1. C TRLADJ SOURCE GOUNAND 21/04/06 21:15:38 10940
  2. SUBROUTINE TRLADJ(TRAVL,NCDONN,NLDONN,lchang,mmot)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : TRLADJ
  7. C DESCRIPTION : Ajustement (SEGADJ) du nombre de candidats d'un
  8. C segment TRAVL et de ses éventuels sous-objets.
  9. C
  10. C iopt=1 : on calcule un NCMAX automatiquement, éventuellement
  11. C supérieur à la valeur NCDONN donnée et on modifie NCCOU qui
  12. C devient égal à NCDONN
  13. C
  14. C Repris de topadv.eso
  15. C
  16. C LANGAGE : ESOPE
  17. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  18. C mél : gounand@semt2.smts.cea.fr
  19. C***********************************************************************
  20. C APPELES :
  21. C APPELES (E/S) :
  22. C APPELES (BLAS) :
  23. C APPELES (CALCUL) :
  24. C APPELE PAR :
  25. C***********************************************************************
  26. C SYNTAXE GIBIANE :
  27. C ENTREES :
  28. C ENTREES/SORTIES :
  29. C SORTIES :
  30. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  31. C***********************************************************************
  32. C VERSION : v1, 31/10/2017, version initiale
  33. C HISTORIQUE : v1, 31/10/2017, création
  34. C HISTORIQUE :
  35. C HISTORIQUE :
  36. C***********************************************************************
  37. -INC PPARAM
  38. -INC CCOPTIO
  39. -INC TMATOP1
  40. *-INC SMELEMX
  41. POINTEUR LMCANS.MELEMX
  42. -INC SMLENTI
  43. POINTEUR LIDXCA.MLENTI
  44. POINTEUR LOKVOL.MLENTI
  45. POINTEUR LNQUAL.MLENTI
  46. POINTEUR LINDI.MLENTI
  47. POINTEUR LINDJ.MLENTI
  48. -INC SMLREEL
  49. POINTEUR LQUALS.MLREEL
  50. -INC TMATOP2
  51. *-INC STRAVL
  52. character*(*) mmot
  53. logical lchang,lchan2
  54. INTEGER IMPR,IRET
  55. *
  56. * Executable statements
  57. *
  58. if (impr.ge.5) WRITE(IOIMP,*) 'Entrée dans trladj.eso'
  59. *
  60. lchang=.false.
  61. NCMAXO=TRAVL.NCMAX
  62. NCCOUO=TRAVL.NCCOU
  63. *
  64. NCCOUN=NCDONN
  65. IF (NCCOUN.LE.NCMAXO) THEN
  66. * write(ioimp,*) 'pas besoin d''appeler trladj ???'
  67. * goto 9999
  68. * TRAVL.NCCOU=NCCOUN
  69. * return
  70. ELSE
  71. * NCMAXN=NCDONN+0
  72. * Stratégie d'augmentation
  73. NCMAX1=NCDONN
  74. * XCOF=1.414D0
  75. XCOF=2.D0
  76. NCMAX2=TRAVL.NCINI+INT(((NCMAXO-TRAVL.NCINI)*XCOF)+0.5D0)
  77. NCMAXN=MAX(NCMAX1,NCMAX2)
  78.  
  79. IF (NCCOUN.LT.NCCOUO.or.NCMAXN.LT.NCCOUO) THEN
  80. write(ioimp,*) 'On ne peut pas redimensionner à une ',
  81. $ 'valeur plus petite que nccou'
  82. goto 9999
  83. endif
  84.  
  85. lchang=.true.
  86. TRAVL.NCMAX=NCMAXN
  87. if (isgadj.gt.0)
  88. * $ write(ioimp,486) TRAVL,NCMAXO,NCMAXN,NCCOUN
  89. $ write(ioimp,486) mmot,NCMAXO,NCMAXN,NCCOUN
  90. *
  91. lidxca=travl.idxca
  92. if (lidxca.ne.0) then
  93. jg=ncmaxn+1
  94. segadj lidxca
  95. endif
  96. *
  97. lokvol=travl.okvol
  98. if (lokvol.ne.0) then
  99. jg=ncmaxn
  100. segadj lokvol
  101. endif
  102. *
  103. lnqual=travl.nqual
  104. if (lnqual.ne.0) then
  105. jg=ncmaxn
  106. segadj lnqual
  107. endif
  108. *
  109. lindi=travl.indi
  110. if (lindi.ne.0) then
  111. jg=ncmaxn
  112. segadj lindi
  113. endif
  114. *
  115. lindj=travl.indj
  116. if (lindj.ne.0) then
  117. jg=ncmaxn
  118. segadj lindj
  119. endif
  120. ENDIF
  121. *
  122. lmcans=travl.mcans
  123. if (lmcans.ne.0) then
  124. call mlxadl(lmcans,nldonn,lchan2,mmot)
  125. if (ierr.ne.0) return
  126. endif
  127. *
  128. lquals=travl.quals
  129. if (lquals.ne.0) then
  130. if (lmcans.eq.0) then
  131. write(ioimp,*) 'lquals existe mais pas lmcans'
  132. goto 9999
  133. endif
  134. jg=lmcans.numx(/2)
  135. segadj lquals
  136. endif
  137. *
  138. TRAVL.NCCOU=NCCOUN
  139. *
  140. * Normal termination
  141. *
  142. RETURN
  143. *
  144. * Format handling
  145. *
  146. * 486 FORMAT ('Segment TRAVL=',I8,' nbcand max ajusté de ',I6,' à ',I6,
  147. * $ ' (nbcand. courant=',I6,')')
  148. 486 FORMAT (A25,' nbcand max ajusté de ',I6,' à ',I6,
  149. $ ' (nbcand. courant=',I6,')')
  150. * 187 FORMAT (5X,10I8)
  151. * 188 FORMAT ('Apres point IELEM(',I2,',1)=',I6,' ; NBL=')
  152. * 189 FORMAT ('Le noeud ',I2,'/',I2,' de IELEM de numero',I6
  153. * $ ,' a le plus petit nb de voisins :',I3)
  154. *
  155. * Error handling
  156. *
  157. 9999 CONTINUE
  158. MOTERR(1:8)='TRLADJ '
  159. * 349 2
  160. *Problème non prévu dans le s.p. %m1:8 contactez votre assistance
  161. CALL ERREUR(349)
  162. RETURN
  163. *
  164. * End of subroutine TRLADJ
  165. *
  166. END
  167.  
  168.  
  169.  

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