* fichier : mdiavf2.dgibi
*
* Utilisation de l'operateur MDIA pour creér un jacobien analytique
* dans le cas d'injection subsonic d'air dans l'air
*
* A. Beccantini, SFME/LTMF
*
'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'ISOV' 'SULI'
'ECHO' 0 'TRAC' 'X' ;
GRAPH = VRAI ;
GRAPH = FAUX ;
******************
**** MAILLAGE ****
******************
RAF = 8 ;
L = 10. ;
DX = 1.0 '/' RAF ;
NX = 2 ;
LINJ = NX '*' DX ;
P2 = LINJ 0.0 ;
P3 = 0.0 0.0 ;
NY = 'ENTIER' ((L '/' DX) '+' 0.5) ;
P2P3 = P2 'DROIT' NX P3 ;
DOMINT = P2P3 'TRANSLATION' NY (0. L) ;
*
* Creation of MAILEN (maillage à l'entrée)
*
LIGAPP = ('CHANGER' 'POI1' P2P3) ;
MAILEN = DOMINT 'ELEM' 'APPUYE' 'LARGEMENT' LIGAPP ;
*
**** Creation of DOMAINE tables via the MODEL object
*
MDOMINT = 'MODELISER' DOMINT 'EULER' ;
MP2P3 = 'MODELISER' P2P3 'EULER' ;
MMAILEN = 'MODELISER' MAILEN 'EULER' ;
$DOMINT = 'DOMA' MDOMINT 'VF' ;
$P2P3 = 'DOMA' MP2P3 'VF' ;
$MAILEN = 'DOMA' MMAILEN 'VF' ;
QDOMINT = 'DOMA' MDOMINT 'QUAF' ;
QP2P3 = 'DOMA' MP2P3 'QUAF' ;
QMAILEN = 'DOMA' MMAILEN 'QUAF' ;
'ELIMINATION' (QDOMINT 'ET' QP2P3 'ET' QMAILEN) 0.001 ;
'SI' GRAPH ;
'TRACER' (DOMINT 'ET' (MAILEN 'COULEUR' 'ROUG'))
'TITR' 'Maillage entree';
'FINSI' ;
*
* MAIFA1 = internel cells close to ghost cells
*
SURP2P3 = 'DOMA' $P2P3 'VOLUME' ;
VOLDOMI = 'DOMA' $DOMINT 'VOLUME' ;
POIN0 = 'POIN' 1 ($P2P3 . 'CENTRE') ;
POIN1 = 'POIN' 1 (($DOMINT . 'FACEL') 'ELEM' 'CONTENANT' POIN0) ;
MAIFA1 = 'MANUEL' 'POI1' POIN1 ;
LISTVOLU = 'PROG' ('EXTRAIRE' VOLDOMI POIN1 'SCAL') ;
LISTSURF = 'PROG' ('EXTRAIRE' SURP2P3 POIN0 'SCAL') ;
'REPETER' BLLIM (('NBNO' ($P2P3 . 'CENTRE')) '-' 1) ;
POIN0 = 'POIN' (&BLLIM '+' 1) ($P2P3 . 'CENTRE') ;
POIN1 = 'POIN' 1 (($DOMINT . 'FACEL') 'ELEM' 'CONTENANT' POIN0) ;
MAIFA1 = MAIFA1 'ET' ('MANUEL' 'POI1' POIN1) ;
LISTVOLU = LISTVOLU 'ET' ('PROG' ('EXTRAIRE' VOLDOMI POIN1 'SCAL'))
;
LISTSURF = LISTSURF 'ET' ('PROG' ('EXTRAIRE' SURP2P3 POIN0 'SCAL'))
;
'FIN' BLLIM ;
CHSURF = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LISTSURF 'NATU' 'DISCRET' ;
CHVOLU = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LISTVOLU 'NATU' 'DISCRET' ;
'SI' GRAPH ;
'TRACER' (DOMINT 'ET' MAIFA1) 'TITRE'
'Domain and faces -> centres' ;
'FINSI' ;
**************
**** I.C. ****
**************
UN = ('NOMC' 'RN' ('BRUI' 'BLAN' 'UNIF' 1.0 0.1
($DOMINT . 'CENTRE')) 'NATU' 'DISCRET') 'ET'
('NOMC' 'RUX' ('BRUI' 'BLAN' 'UNIF' 300.0 10.0
($DOMINT . 'CENTRE')) 'NATU' 'DISCRET') 'ET'
('NOMC' 'RUY' ('BRUI' 'BLAN' 'UNIF' 300.0 10.0
($DOMINT . 'CENTRE')) 'NATU' 'DISCRET') 'ET'
('NOMC' 'RETN' ('BRUI' 'BLAN' 'UNIF' 1D6 0.1
($DOMINT . 'CENTRE')) 'NATU' 'DISCRET') ;
*********************************************************************
**** Procedure RESL *************************************************
*********************************************************************
*
'DEBP' RESL ;
'ARGU' RVX*'TABLE' ;
*
**** Euler Monocomponent 2D
* Subsonic injection of air
*
* A definir:
*
* RVX . 'DOMA' = table domaine des "internal cells close to the
* injection interfaces"
* RVX . 'DOMA' ne serve que pour MDIA
*
* RVX . 'VOLUME' = volume des "internal cells close to the injection
* interfaces"
*
* RVX . 'SURFACE'= CHPOINT defini sur les centres des "internal cells
* close to the injection interfaces", qui contient
* la surface des faces d'injection
* |-------|
* | |
* +---> |
* | |
* |-------|
*
* RVX . 'MAILLAGE' = maillage de 'POI1' (centres des "internal cells
* close to the injection interfaces")
*
* RVX . 'GAMLIM' (objet de type FLOTTANT) (gamma du gaz);
* RVX . 'ROVINF' (objet de type FLOTTANT) (flux de masse à l'injection) ;
* RVX . 'RTINF' (objet de type FLOTTANT) (temperature à l'injection);
*
* RVX . 'DX' (objet de type FLOTTANT) (longuer pour le calcul du pas
* de temps de stabilité pour l'algorithme temporel
* explicite)
* RVX . 'ALPHA' (objet de type FLOTTANT) (coefficient de securité pour
* le calcul du pas de temps de stabilité pour
* l'algorithme temporel explicite)
*
RV = RVX . 'EQEX' ;
$DOMA = RVX . 'DOMA' ;
CHVOLUME = RVX . 'VOLUME' ;
CHSFACE = RVX . 'SURFACE' ;
AA = 'TYPE' (RVX . 'GAMLIM') ;
'SI' ('NEG' AA 'FLOTTANT') ;
'MESSAGE' 'RV . GAMLIM ???' ;
'ERREUR' 21 ;
'FINSI' ;
AA = 'TYPE' (RVX . 'ROVINF') ;
'SI' ('NEG' AA 'FLOTTANT') ;
'MESSAGE' 'RV . ROVINF ???' ;
'ERREUR' 21 ;
'FINSI' ;
AA = 'TYPE' (RVX . 'RTINF') ;
'SI' ('NEG' AA 'FLOTTANT') ;
'MESSAGE' 'RV . RTINF ???' ;
'ERREUR' 21 ;
'FINSI' ;
* Inconnue
UN = 'COPIER' (RV . 'UN') ;
MAIFA1 = RVX . 'MAILLAGE' ;
UNRED = 'REDU' UN MAIFA1 ;
RNRED = 'EXCO' 'RN' UNRED ;
GNRED = 'EXCO' ('MOTS' 'RUX' 'RUY') UNRED ('MOTS' 'UX' 'UY') ;
RETNRED = 'EXCO' 'RETN' UNRED ;
GAMLIM = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' (RVX . 'GAMLIM') ;
GAMSCAL = (RVX . 'GAMLIM') ;
VNRED PNRED = 'PRIM' 'PERFMONO' RNRED GNRED RETNRED GAMLIM ;
* LISTREEL pour les conditions limites (flux) .
LRET = 'PROG' ;
LRUN = 'PROG' ;
LR = 'PROG' ;
* LISTREEL pour les conditions limites (jacobien) .
LRUYR = 'PROG' ;
LRETR = 'PROG' ;
LRUYUX = 'PROG' ;
LRETUX = 'PROG' ;
LRUYUY = 'PROG' ;
LRETUY = 'PROG' ;
LRUYRET = 'PROG' ;
LRETRET = 'PROG' ;
* Boucle sur maifa1 pour calculer les conditions à imposer
NN = 'NBNO' MAIFA1 ;
RTG = RVX . 'RTINF' ;
GG = RVX . 'ROVINF' ;
'REPETER' BL1 NN ;
PCEL = 'POIN' MAIFA1 &BL1 ;
SURCEL = 'EXTRAIRE' CHSFACE 'SCAL' PCEL ;
VOLCEL = 'EXTRAIRE' CHVOLUME 'SCAL' PCEL ;
ROD = 'EXTRAIRE' RNRED 'SCAL' PCEL ;
PD = 'EXTRAIRE' PNRED 'SCAL' PCEL ;
UYD = 'EXTRAIRE' VNRED 'UY' PCEL ;
UXD = 'EXTRAIRE' VNRED 'UX' PCEL ;
UND = UYD ;
UTD = UXD ;
PG = PD ;
ROG = PG '/' RTG ;
UNG = GG '/' ROG ;
RHTG = ((PG '*' GAMSCAL) '/' (GAMSCAL '-' 1.))
'+' (0.5 '*' ROG '*' UNG '*' UNG) ;
* DROUYDP = d(RHOUY)/dP_(primitive)
DROUYDP =
1. '-' ((GG '*' GG '*' RTG) '/' (PD '*' PD)) ;
* DRETDP = d(RET)/dP_(primitive)
DRETDP =
-1 '*' ((GG '*' GG '*' GG '*' RTG '*' RTG)
'/' (PD '*' PD '*' PD)) ;
*
* d/dro_(conservative) = DPDRO '*' d()/dP_(primitive)
DPDRO = (GAMSCAL '-' 1.) '*' ((UXD ** 2) '+' (UYD ** 2)) '/' 2. ;
*
* d/droux_(conservative) = DPDUX '*' d()/dP_(primitive)
DPDUX = -1 '*' (GAMSCAL '-' 1.) '*' UXD ;
*
* d/drouy_(conservative) = DPDUY '*' d()/dP_(primitive)
DPDUY = -1 '*' (GAMSCAL '-' 1.) '*' UYD ;
*
* d/dret_(conservative) = DPDRET '*' d()/dP_(primitive)
DPDRET = (GAMSCAL '-' 1.) ;
*
*
* Le flux
*
* ^
* |-->
* --------------
*
LR = LR 'ET' ('PROG' ((ROG '*' UNG) '*' (SURCEL '/' VOLCEL)));
LRUN = LRUN 'ET' ('PROG' (((ROG '*' UNG '*' UNG) '+' PG) '*'
(SURCEL '/' VOLCEL))) ;
LRET = LRET 'ET' ('PROG' ((UNG '*' RHTG) '*' (SURCEL '/' VOLCEL))) ;
*
* Le jacobien du flux
*
* Inverse du volume est lié a la syntaxe de MDIA
*
VOLCEL2 = VOLCEL '*' VOLCEL ;
LRUYR = LRUYR 'ET' ('PROG' ((DPDRO '*' DROUYDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRETR = LRETR 'ET' ('PROG' ((DPDRO '*' DRETDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRUYUX = LRUYUX 'ET' ('PROG' ((DPDUX '*' DROUYDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRETUX = LRETUX 'ET' ('PROG' ((DPDUX '*' DRETDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRUYUY = LRUYUY 'ET' ('PROG' ((DPDUY'*' DROUYDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRETUY = LRETUY'ET' ('PROG' ((DPDUY'*' DRETDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRUYRET = LRUYRET 'ET' ('PROG' ((DPDRET '*' DROUYDP) '*'
(SURCEL '/' VOLCEL2))) ;
LRETRET = LRETRET 'ET' ('PROG' ((DPDRET '*' DRETDP) '*'
(SURCEL '/' VOLCEL2))) ;
'FIN' BL1 ;
RESLIM = 'MANUEL' 'CHPO' MAIFA1 4 'RN' LR 'RUX' 0.0
'RUY' LRUN 'RETN' LRET 'NATU' 'DISCRET' ;
UPC = ((GAMSCAL '*' PG '/' ROG) '**' 0.5) '+' UNG ;
IALPDT = 'PROG' (((RVX . 'ALPHA') '*' (RVX . 'DX')) '/' UPC) ;
THETA = RVX . 'THETA' ;
'SI' (RVX . 'IMPL') ;
*
**** Jacobian avec MDIA
*
* La matrice met en relation les couples suivantes:
* PRIMALES DUALES
*1 densité (q.d.m.)y
*2 densité energie totale
*
*3 (q.d.m.)x (q.d.m.)y
*4 (q.d.m.)x energie totale
*
*5 (q.d.m.)y (q.d.m.)y
*6 (q.d.m.)y energie totale
*
*7 energie totale (q.d.m.)y
*8 energie totale energie totale
*
*
**** Test of inlet implicit boundary conditions
*
* La matrice met en relation les couples suivantes:
* PRIMALES DUALES
*1 densité (q.d.m.)y
*2 densité energie totale
*
*3 (q.d.m.)x (q.d.m.)y
*4 (q.d.m.)x energie totale
*
*5 (q.d.m.)y (q.d.m.)y
*6 (q.d.m.)y energie totale
*
*7 energie totale (q.d.m.)y
*8 energie totale energie totale
*
*
CHRUYR = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRUYR ;
CHRUYR = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRUYR ;
CHRETR = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRETR ;
CHRETR = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRETR ;
CHRUYRUX = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRUYUX ;
CHRUYRUX = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRUYRUX ;
CHRETRUX = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRETUX ;
CHRETRUX = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRETRUX ;
CHRUYRUY = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRUYUY ;
CHRUYRUY = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRUYRUY ;
CHRETRUY = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRETUY ;
CHRETRUY = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRETRUY ;
CHRUYRET = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRUYRET ;
CHRUYRET = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRUYRET ;
CHRETRET = 'MANUEL' 'CHPO' MAIFA1 1 'SCAL' LRETRET ;
CHRETRET = 'KCHT' $DOMA 'SCAL' 'CENTRE' CHRETRET ;
RVDIA = 'EQEX' $DOMA 'ITMA' 1 'OPTI' 'VF' 'IMPL' 'CENTREE'
*1
'ZONE' $DOMA 'OPER' 'MDIA' CHRUYR 'INCO' 'RN' 'RUY'
*2
'ZONE' $DOMA 'OPER' 'MDIA' CHRETR 'INCO' 'RN' 'RETN'
*3
'ZONE' $DOMA 'OPER' 'MDIA' CHRUYRUX 'INCO' 'RUX' 'RUY'
*4
'ZONE' $DOMA 'OPER' 'MDIA' CHRETRUX 'INCO' 'RUX' 'RETN'
*5
'ZONE' $DOMA 'OPER' 'MDIA' CHRUYRUY 'INCO' 'RUY' 'RUY' ;
*
RVDIA = 'EQEX' RVDIA 'OPTI' 'VF' 'IMPL' 'CENTREE'
*6
'ZONE' $DOMA 'OPER' 'MDIA' CHRETRUY 'INCO' 'RUY' 'RETN'
*7
'ZONE' $DOMA 'OPER' 'MDIA' CHRUYRET 'INCO' 'RETN' 'RUY'
*8
'ZONE' $DOMA 'OPER' 'MDIA' CHRETRET 'INCO' 'RETN' 'RETN'
;
RVDIA . 'INCO' = 'TABLE' 'INCO' ;
RVDIA . 'INCO' . 'RN' = 'KCHT' $DOMA 'SCAL' 'CENTRE' 0.0 ;
RVDIA . 'INCO' . 'RUX' = 'KCHT' $DOMA 'SCAL' 'CENTRE' 0.0 ;
RVDIA . 'INCO' . 'RUY' = 'KCHT' $DOMA 'SCAL' 'CENTRE' 0.0 ;
RVDIA . 'INCO' . 'RETN' = 'KCHT' $DOMA 'SCAL' 'CENTRE' 0.0 ;
MDIA (RVDIA . '1MDIA') ;
MAT1 = RVDIA . '1MDIA' . 'MATELM' ;
MDIA (RVDIA . '2MDIA') ;
MAT2 = RVDIA . '2MDIA' . 'MATELM' ;
MDIA (RVDIA . '3MDIA') ;
MAT3 = RVDIA . '3MDIA' . 'MATELM' ;
MDIA (RVDIA . '4MDIA') ;
MAT4 = RVDIA . '4MDIA' . 'MATELM' ;
MDIA (RVDIA . '5MDIA') ;
MAT5 = RVDIA . '5MDIA' . 'MATELM' ;
MDIA (RVDIA . '6MDIA') ;
MAT6 = RVDIA . '6MDIA' . 'MATELM' ;
MDIA (RVDIA . '7MDIA') ;
MAT7 = RVDIA . '7MDIA' . 'MATELM' ;
MDIA (RVDIA . '8MDIA') ;
MAT8 = RVDIA . '8MDIA' . 'MATELM' ;
IJACO = MAT1 'ET' MAT2 'ET' MAT3 'ET' MAT4 'ET'
MAT5 'ET' MAT6 'ET' MAT7 'ET' MAT8 ;
'SINON' ;
CACCA IJACO = 'KOPS' 'MATRIK' ;
'FINSI' ;
'RESPRO' IJACO RESLIM IALPDT THETA ;
'FINP' ;
*********************************************************************
**** Fin procedure RESL *********************************************
*********************************************************************
*********************************************************************
**** Procedure JACOVA ***********************************************
*********************************************************************
* Derivé partielle du residu en un point par rapport
* aux variable dans le meme point
*
'DEBPROC' JACOVA JACO*'MATRIK' $DOMA*'TABLE' LISTINCO*'LISTMOTS'
PPRIM*'POINT' MOTPRI*'MOT' MOTDUA*'MOT';
* PPRIM = point ou est localisé la variable primale
* PPRIM = point ou est localisé la variable duale
* MOTPRI = nom de la composante concernante la variable primale
* MOTDUA = nom de la composante concernante la variable duale
ELT1 = 'MANUEL' 'POI1' PPRIM ;
NDIM = 'DIME' LISTINCO ;
CHPUN = 'MANUEL' 'CHPO' ELT1 1 MOTPRI 1.0 'NATURE' 'DISCRET' ;
'REPETER' BL1 NDIM ;
MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ;
CHPUN = CHPUN 'ET' ('MANUEL' 'CHPO' ($DOMA . 'CENTRE') 1 MOTCEL
0.0 'NATURE' 'DISCRET') ;
'FIN' BL1 ;
D_DMOT = 'KOPS' JACO 'MULT' CHPUN ;
SCAL = 'EXTRAIRE' D_DMOT PPRIM MOTDUA ;
'FINPROC' SCAL ;
*********************************************************************
**** Fin procedure JACOVA *******************************************
*********************************************************************
*********************************************************************
**** Procedure JACNUM ***********************************************
*********************************************************************
'DEBPROC' JACNUM RVX*'TABLE'
LISTINCO*'LISTMOTS' PPRIM*'POINT'
MOTPRI*'MOT' MOTDUA*'MOT' EPSILON*'FLOTTANT';
* PPRIM = point ou est localisé la variable primale
* PPRIM = point ou est localisé la variable duale
* MOTPRI = nom de la composante concernante la variable primale
* MOTDUA = nom de la composante concernante la variable duale
* Le valeur dans l'état non-perturbé en PPRIM ;
RV = RVX . 'EQEX' ;
UN0 = 'COPIER' (RV . 'UN') ;
THETA0 = RVX . 'THETA' ;
RVX . 'THETA' = 0.0 ;
IMPL0 = RVX . 'IMPL' ;
RVX . 'IMPL' = FAUX ;
IJACEL CHPRES0 DT ALPDT = RESL RVX ;
VAL0 = 'EXTRAIRE' CHPRES0 PPRIM MOTDUA ;
* EPSILON = perturbation
* On etabli la variable à perturber
NDIM = 'DIME' LISTINCO ;
'REPETER' BL1 NDIM ;
MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ;
'SI' ('EGA' MOTCEL MOTPRI) ;
ICEL = &BL1 ;
'QUITTER' BL1 ;
'FINSI' ;
'FIN' BL1 ;
'SI' (ICEL > NDIM) ;
'MESSAGE' 'Procedure JACNUM' ;
'MESSAGE' 'MOTPRI = ??? ';
'ERREUR' 21 ;
'FINSI' ;
ELT1 = 'MANUEL' 'POI1' PPRIM ;
$DOMA = RVX . 'DOMA' ;
CHPERT = ('MANUEL' 'CHPO' ($DOMA . 'CENTRE') 4
'RN' 1.0 'RUX' 1.0 'RUY' 1.0 'RETN' 1.0
'NATU' 'DISCRET') '+'
('MANUEL' 'CHPO' ($DOMA . 'CENTRE') 1
MOTPRI EPSILON) ;
RV . 'UN' = UN0 '*' CHPERT LISTINCO LISTINCO
LISTINCO ;
DELTATOT = ('EXTRAIRE' (RV . 'UN') PPRIM MOTPRI) '-'
('EXTRAIRE' UN0 PPRIM MOTPRI) ;
IJACEL CHPRES0 DT ALPDT = RESL RVX ;
VAL1 = 'EXTRAIRE' CHPRES0 PPRIM MOTDUA ;
RV . 'UN' = UN0 ;
RVX . 'THETA' = THETA0 ;
RVX . 'IMPL' = IMPL0 ;
'FINPROC' ((VAL1 '-' VAL0) '/' DELTATOT) ;
*********************************************************************
***** Fin procedure JACNUM ******************************************
*********************************************************************
RV = 'TABLE' ;
RV . 'UN' = UN ;
*
**** Table pour RESL
*
RV . '3RESL' = 'TABLE' ;
RV . '3RESL' . 'EQEX' = RV ;
RV . '3RESL' . 'THETA' = 1.0 ;
RV . '3RESL' . 'IMPL' = VRAI ;
RV . '3RESL' . 'DOMA' = $MAILEN ;
RV . '3RESL' . 'VOLUME' = CHVOLU ;
RV . '3RESL' . 'SURFACE' = CHSURF ;
RV . '3RESL' . 'MAILLAGE' = MAIFA1 ;
RV . '3RESL' . 'GAMLIM' = 1.4 ;
RV . '3RESL' . 'ROVINF' = 1.0 ;
RV . '3RESL' . 'RTINF' = (288. '*' 600.) ;
RV . '3RESL' . 'DX' = 'MINIMUM' (2 '*' ('DOMA' $DOMINT 'DIAMIN')) ;
RV . '3RESL' . 'ALPHA' = 1.0 ;
********************
**** Test case *****
********************
IJAC IRES IALP THE = RESL (RV . '3RESL') ;
POI1 = ($MAILEN . 'CENTRE') 'POIN' 1 ;
LISTINC1 = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' ;
LISTINC2 = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' ;
DELTA = 1.0D-4 ;
'REPETER' BL1 4 ;
'REPETER' BL2 4 ;
MOT1 = 'EXTRAIRE' LISTINC1 &BL1 ;
MOT2 = 'EXTRAIRE' LISTINC1 &BL2 ;
CACCA1 = JACOVA IJAC $DOMINT LISTINC1 POI1
MOT1 MOT2 ;
CACCA2 = JACNUM (RV . '3RESL') LISTINC2 POI1
MOT1 MOT2 DELTA ;
'MESSAGE' ('CHAINE' 'Analyt.= ' CACCA1 ' Num.= ' CACCA2
' Err = ' ('ABS' (CACCA1 '-' CACCA2))) ;
'SI' (('ABS' CACCA1) > 1.0D-4) ;
ERRO = 'ABS' ((CACCA1 '-' CACCA2) '/' CACCA1) ;
'SINON' ;
ERRO = 'ABS' (CACCA1 '-' CACCA2) ;
'FINSI' ;
'SI' (ERRO > 5.0D-4) ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' BL2 ;
'FIN' BL1 ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer