$$$$ RECENTRE * RECENTRE PROCEDUR LEPOTIER 08/12/10 21:15:26 6214 * RECENTRE PROCEDUR CLP 10/10/08 21:15:05 5841 *********************************************************************** * * Procédure qui prend un champ point centre, et * - si niv = 'CENTRE', ne fait rien, * - si niv = 'MSOMMET' , fait une interpolation aux centres * en utilisant 'NOEL' * - si niv = 'FACE' , fait la moyenne aux faces * * Retourne le champ-point (re)centré. * *********************************************************************** 'DEBPROC' RECENTRE CHP1*'CHPOINT' MMO*'MMODEL'NIV*'MOT' ; 'SI' ('EGA' niv 'CENTRE') ; * le champ est déjà aux centres, on ne fait rien 'RESPRO' chp1 ; 'QUITTER' RECENTRE ; 'FINSI' ; 'SI' ('EGA' niv 'MSOMMET') ; ncomp = extr chp1 COMP; chptot = 'NOEL' MMO chp1 ; ncompn = extr chptot COMP; chptot = NOMC ncompn ncomp chptot; 'RESPRO' chptot ; 'QUITTER' RECENTRE ; 'FINSI' ; 'SI' ('EGA' niv 'FACE') ; ABMC = 'ABS' ('DOMA' MMO 'ORIENTAT') ; FF = 'MANU' 'CHPO' ('DOMA' MMO 'FACE') 1 'FLUX' 1. 'NATURE' 'DISCRET' ; FF = 'DIVU' MMO FF ABMC ; lcomp = 'EXTR' chp1 'COMP' ; ncomp = 'DIME' lcomp ; 'REPETER' bcl ncomp ; i = &bcl ; compi = 'EXTR' lcomp i ; chpi = 'EXCO' chp1 compi compi ; chp2 = 'DIVU' MMO ('NOMC' chpi 'FLUX') ABMC ; chp3 = 'KOPS' chp2 '/' FF ; 'DETRUIT' chp2 ; * concaténation champ-point avec toutes les composantes 'SI' ('EGA' i 1) ; chptot = chp3 ; 'SINON' ; chptot = chptot 'ET' chp3 ; 'FINSI' ; 'FIN' bcl ; * sortie 'RESPRO' chptot ; 'QUITTER' RECENTRE ; 'FINSI' ; 'ERREUR' ('CHAINE' 'Type de décentrement ' niv ' inconnu.') ; 'FINPROC' ; *********************************************************************** $$$$