1 subroutine cmnosu ( nohman,
4 > ulsort, langue, codret )
5 c ______________________________________________________________________
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c Version originale enregistree le 18 juin 1996 sous le numero 96036
12 c aupres des huissiers de justice Simart et Lavoir a Clamart
13 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
14 c aupres des huissiers de justice
15 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c HOMARD est une marque deposee d'Electricite de France
23 c ______________________________________________________________________
25 c Creation du Maillage - les NOeuds SUpplementairs
27 c ______________________________________________________________________
29 c but : gestion de la creation des noeuds p2 et internes aux mailles
30 c ______________________________________________________________________
32 c . nom . e/s . taille . description .
33 c .____________________________________________________________________.
34 c . nohman . e . ch8 . nom de l'objet contenant le maillage .
35 c . indnoe . es . 1 . indice du dernier noeud cree .
36 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
37 c . taetco . e . lgetco . tableau de l'etat courant .
38 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
39 c . langue . e . 1 . langue des messages .
40 c . . . . 1 : francais, 2 : anglais .
41 c . codret . es . 1 . code de retour des modules .
42 c . . . . 0 : pas de probleme .
43 c ______________________________________________________________________
46 c 0. declarations et dimensionnement
49 c 0.1. ==> generalites
55 parameter ( nompro = 'CMNOSU' )
74 integer taetco(lgetco)
76 integer ulsort, langue, codret
78 c 0.4. ==> variables locales
82 integer nretap, nrsset
84 integer nuard1, nuarf1, nuard2, nuarf2
89 parameter ( nbmess = 10 )
90 character*80 texte(nblang,nbmess)
92 c 0.5. ==> initialisations
93 c ______________________________________________________________________
101 c=======================================================================
102 if ( codava.eq.0 ) then
103 c=======================================================================
105 c 1.1. ==> le debut des mesures de temps
110 c 1.3. ==> les messages
114 texte(1,4) = '(/,a6,'' CREATION DES NOEUDS SUPPLEMENTAIRES'')'
115 texte(1,5) = '(42(''=''),/)'
117 > '(5x,''On attendait un nombre total de noeuds de : '',i10)'
119 > '(5x,''Mais on en a cree un nombre total de : '',i10)'
121 texte(2,4) = '(/,a6,'' CREATION OF ADDITIONAL NODES'')'
122 texte(2,5) = '(35(''=''),/)'
123 texte(2,6) = '(5x,i10,'' nodes were expected.'')'
124 texte(2,7) = '(5x,i10,'' nodes were created.'')'
128 c 1.4. ==> le numero de sous-etape
131 nrsset = taetco(2) + 1
134 call utcvne ( nretap, nrsset, saux, iaux, codret )
138 #ifdef _DEBUG_HOMARD_
139 write (ulsort,texte(langue,1)) 'Entree', nompro
143 write ( ulsort,texte(langue,4)) saux
144 write ( ulsort,texte(langue,5))
146 #ifdef _DEBUG_HOMARD_
147 write (ulsort,90002) 'indnoe', indnoe
148 write (ulsort,90002) 'permar', permar
149 write (ulsort,90002) 'nouvtr', nouvtr
154 c Il faut trier pour creer d'abord les noeuds supplementaires
155 c attaches aux entites permanentes, puis ceux attaches aux entites
156 c provisoires. Cela est indispensable pour traiter correctement
157 c la future suppression de la conformite.
160 if ( codret.eq.0 ) then
164 if ( mod(mailet,2).eq.0 .or.
165 > mod(mailet,3).eq.0 .or.
166 > mod(mailet,5).eq.0 ) then
179 c 2. Creation des noeuds P2 sur les aretes :
180 c . permanentes tout le temps
181 c . provisoires si pas de noeuds internes
183 #ifdef _DEBUG_HOMARD_
184 write (ulsort,*) '2. noeuds P2 permanents ; codret = ', codret
185 write (ulsort,90002) 'nuard1, nuarf1', nuard1, nuarf1
188 if ( codret.eq.0 ) then
190 #ifdef _DEBUG_HOMARD_
191 write (ulsort,texte(langue,3)) 'CMNO22 permanent', nompro
193 call cmno22 ( nohman,
194 > indnoe, nuard1, nuarf1,
195 > ulsort, langue, codret )
200 c 3. Creation des noeuds internes aux mailles permanentes
202 #ifdef _DEBUG_HOMARD_
203 write (ulsort,*) '3. internes permanents ; codret = ', codret
206 if ( mod(mailet,2).eq.0 .or.
207 > mod(mailet,3).eq.0 .or.
208 > mod(mailet,5).eq.0 ) then
210 if ( codret.eq.0 ) then
213 #ifdef _DEBUG_HOMARD_
214 write (ulsort,texte(langue,3)) 'CMNOIM permanent', nompro
216 call cmnoim ( nohman,
218 > ulsort, langue, codret )
225 c 4. Creation des noeuds P2 sur les aretes :
226 c . provisoires s'il existe des noeuds internes
228 #ifdef _DEBUG_HOMARD_
229 write (ulsort,*) '4. noeuds P2 provisoires ; codret = ', codret
230 write (ulsort,90002) 'nuard2, nuarf2', nuard2, nuarf2
233 if ( nuarf2.ge.nuard2 ) then
235 if ( codret.eq.0 ) then
237 #ifdef _DEBUG_HOMARD_
238 write (ulsort,texte(langue,3)) 'CMNO22 provisoire', nompro
240 call cmno22 ( nohman,
241 > indnoe, nuard2, nuarf2,
242 > ulsort, langue, codret )
249 c 5. Creation des noeuds internes aux mailles provisoires
251 #ifdef _DEBUG_HOMARD_
252 write (ulsort,*) '5. internes provisoires ; codret = ', codret
255 if ( mod(mailet,2).eq.0 .or.
256 > mod(mailet,3).eq.0 .or.
257 > mod(mailet,5).eq.0 ) then
259 if ( codret.eq.0 ) then
262 #ifdef _DEBUG_HOMARD_
263 write (ulsort,texte(langue,3)) 'CMNOIM provisoire', nompro
265 call cmnoim ( nohman,
267 > ulsort, langue, codret )
274 c 6. verifications et impressions
277 #ifdef _DEBUG_HOMARD_
278 write (ulsort,90002) 'indnoe', indnoe
281 if ( codret.eq.0 ) then
283 if ( indnoe.ne.nouvno ) then
284 write(ulsort,texte(langue,6)) nouvno
285 write(ulsort,texte(langue,7)) indnoe
295 c 7.1. ==> message si erreur
297 if ( codret.ne.0 ) then
301 write (ulsort,texte(langue,1)) 'Sortie', nompro
302 write (ulsort,texte(langue,2)) codret
306 c 7.2. ==> fin des mesures de temps de la section
310 #ifdef _DEBUG_HOMARD_
311 write (ulsort,texte(langue,1)) 'Sortie', nompro
315 c=======================================================================
317 c=======================================================================