* fichier :  clim3d.dgibi
*********************************************************************
* VF, CLIM 3D                                                       *
*                                                                   *
* BECCANTINI A., DM2S/SFME/LTMF,  JANVIER 2002                      *
*********************************************************************

 TYEL = 'CU20' ;
 
 'OPTION'  'DIME' 3  'ELEM' TYEL  'ISOV' 'SULI' 'ECHO' 0 'TRAC' 'X' ;

 GRAPH = VRAI ;
 GRAPH = FAUX ;

******************
**** MAILLAGE ****
******************
*
*  P5    P4
*
*  P2    P3
*

 DX = 0.5 ;
 P2 = 0.0 0.0 0.0 ;
 P3 = DX  0.0 0.0 ;
 P4 = DX  DX  0.0 ;
 P5 = 0.0 DX  0.0 ;
 P2P3 = P2 'DROIT' 1 P3 ;
 P5P4 = P5 'DROIT' 1 P4 ;
 ENTREE = P2P3 'REGLER' 1 P5P4 ;

 DOMINT = ENTREE 'VOLU' 'TRAN' 4 (0.0 0.0 (4 '*' DX)) ;

 DOMINT = 'CHANGER' DOMINT 'QUAF' ;
 ENTREE = 'CHANGER' ENTREE 'QUAF' ;

 'ELIMINATION' DOMINT 0.1D-3 ENTREE ;

*
**** Creation of DOMAINE tables via the MODEL object
*
 
 MDOMINT  = 'MODELISER' DOMINT 'NAVIER_STOKES' 'LINE' ;
 MENTREE    = 'MODELISER' ENTREE 'NAVIER_STOKES' 'LINE' ;
 
 $DOMINT = 'DOMA' MDOMINT 'TABLE' ;
 $ENTREE   = 'DOMA' MENTREE   'TABLE' ;

 DOMINT = 'DOMA' MDOMINT 'MAILLAGE' ;
 ENTREE   = 'DOMA' MENTREE 'MAILLAGE' ;

 PCEN = ($DOMINT . 'CENTRE') 'POIN' 'PROC'
   ((DX '/' 2) (DX '/' 2) (DX '/' 2)) ;

 'SI' GRAPH ; 
    'TRACER' (DOMINT 'ET' PCEN) ;
 'FINSI' ;


**********************************************************************************
**********************************************************************************
***************************  Riemann invariants, inlet ***************************
**********************************************************************************
**********************************************************************************
 
 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.15 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.011 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 1.19 'UX' 1.5
    'UZ' 1.11 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;

 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' 0.91 'PN' 3.0
         'UX' 0.35 'UY' 0.3 'UZ' 1.0 ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INRI'  ;

*
**** On calcule RCHLIM en gibiane
*

 UNC   = 'EXCO' VN 'UZ' 'SCAL' ;

 GAMMA = 'MAXIMUM' GAMN ;
 GM1 = '-' GAMMA 1. ;
 USGM1 = 1. '/' GM1 ;
 DSGM1 = 2. '*' USGM1 ;

 ASONC = GAMMA * (PN '/' RN) ;
 ASONC = ASONC '**' 0.5 ;

 G1 = UNC '-' (DSGM1 * ASONC) ;
 G1 = 'EXTRAIRE' G1 PCEN 'SCAL' ;

 RNCEL= 'EXCO' CHPLI 'RN' ;
 PNCEL = 'EXCO' CHPLI 'PN' ;
 UNCELC = 'EXCO' CHPLI 'UZ' ;

 ASONC = GAMMA * (PNCEL '/' RNCEL) ;
 ASONC = ASONC '**' 0.5 ;

 G3 = UNCELC '+' (DSGM1 * ASONC) ;
 G3 = 'EXTRAIRE' G3 ('POIN' 1 ($ENTREE . 'CENTRE')) 'SCAL' ;
 S = PNCEL '/' (RNCEL** GAMMA) ;
 S = 'EXTRAIRE' S  ('POIN' 1 ($ENTREE . 'CENTRE')) 'SCAL' ;

 ASON2=(0.5D0*(G3-G1)) ;
 ASON2=ASON2/DSGM1 ;
 ASON2=ASON2*ASON2 ;
 RHO=ASON2/(GAMMA*S) ;
 RHO=RHO**USGM1 ;
 P=(RHO*ASON2)/GAMMA ;
 UNCEL = 0.5 '*' (G3 '+' G1) ;

 CHLIM2 = 'MANU' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' RHO
   'UX' ('EXTR' CHPLI  ('POIN' 1 ($ENTREE . 'CENTRE')) 'UX')
   'UY' ('EXTR' CHPLI  ('POIN' 1 ($ENTREE . 'CENTRE')) 'UY')
    'UZ' UNCEL 'PN' P ;
    
 ERRO = 'MAXIMUM' (CHLIM2 '-' RCHLIM) 'ABS' ;

 'SI' (ERRO > 1.0D-12) ;
    'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to primitive variable
*
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INRI'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'INRI'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'INRI'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'INRI'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'INRI'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'INRI'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INRI'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INRI'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INRI'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INRI'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INRI'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INRI'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;


**********************************************************************************
**********************************************************************************
***************************  Riemann invariants, outlet **************************
**********************************************************************************
**********************************************************************************

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.15 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.011 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 0.19 'UX' 0.15
    'UZ' -0.11 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;

 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' 0.91 'PN' 1.10
         'UX' 0.35 'UY' 0.3 'UZ' 0.011 ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'OUTRI'  ;

*
**** On calcule RCHLIM en gibiane
*
 
 UNC   = -1 '*' ('EXCO' VN 'UZ' 'SCAL') ;
 UTC1 = ('EXCO' VN 'UX' 'SCAL') ;
 UTC2 = ('EXCO' VN 'UY' 'SCAL') ;
 
 GAMMA = 'MAXIMUM' GAMN ;
 GM1 = '-' GAMMA 1. ;
 USGM1 = 1. '/' GM1 ;
 DSGM1 = 2. '*' USGM1 ;

 ASONC = GAMMA * (PN '/' RN) ;
 ASONC = ASONC '**' 0.5 ;

 G3 = UNC '+' (DSGM1 * ASONC) ;
 G3 = 'EXTRAIRE' G3 PCEN 'SCAL' ;
 S = PN '/' (RN** GAMMA) ;
 S = 'EXTRAIRE' S  PCEN 'SCAL' ;

 RNCEL= 'EXCO' CHPLI 'RN' ;
 PNCEL = 'EXCO' CHPLI 'PN' ;
 UNCELC = -1 * ('EXCO' CHPLI 'UZ' 'SCAL') ;

 ASONC = GAMMA * (PNCEL '/' RNCEL) ;
 ASONC = ASONC '**' 0.5 ;

 G1 = UNCELC '-' (DSGM1 * ASONC) ;
 G1 = 'EXTRAIRE' G1 ('POIN' 1 ($ENTREE . 'CENTRE')) 'SCAL' ;

 ASON2=(0.5D0*(G3-G1)) ;
 ASON2=ASON2/DSGM1 ;
 ASON2=ASON2*ASON2 ;
 RHO=ASON2/(GAMMA*S) ;
 RHO=RHO**USGM1 ;
 P=(RHO*ASON2)/GAMMA ;
 UNCEL = 0.5 '*' (G3 '+' G1) ;
 
 UZ = -1*UNCEL ;
 UX = 'EXTR' UTC1 'SCAL' PCEN ;
 UY = 'EXTR' UTC2 'SCAL' PCEN ;

 CHLIM2 = 'MANU' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' RHO 'UX'
    UX 'UY' UY  'UZ' UZ 'PN' P ;

 ERRO = 'MAXIMUM' (CHLIM2 '-' RCHLIM) 'ABS' ;

 'SI' (ERRO > 1.0D-12) ;
    'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to primitive variable
*
 
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'OUTRI'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'OUTRI'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'OUTRI'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'OUTRI'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'OUTRI'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'OUTRI'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'OUTRI'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTRI'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTRI'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTRI'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTRI'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTRI'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;


**********************************************************************************
**********************************************************************************
***************************  Supersonic inlet ************************************
**********************************************************************************
**********************************************************************************

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 15. 'UX' 1. 'UZ' 1.7;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) ;
   
 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' 1.11 'PN' 2.13
         'UX' -11. 'UY' 2. 'UZ' 1.8 ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INSS'  ;

 ERRO = 'MAXIMUM' (RCHLIM '-' CHPLI) 'ABS' ;
 
 'SI' (ERRO > 1.0D-12) ;
     'ERREUR' 5 ;
 'FINSI' ;

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INSS'  ;

 AA = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 5 'VAR1' 1.11 'VAR2' 1.13
 'VAR3' 1.15 'VAR4' 1.17 'VAR5' 1.37 ;
 
 ERRO = 'MAXIMUM' ('KOPS' 'MULT' RJACO AA) 'ABS' ;
 
 'SI' (ERRO > 1.0D-12) ;
     'ERREUR' 5 ;
 'FINSI' ;

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INSS'  ;

 AA = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 4 'RN' 1.11 'UX' 1.13
 'UY' 1.15 'PN' 1.17 ;
 
 ERRO = 'MAXIMUM' ('KOPS' 'MULT' RJACO AA) 'ABS' ;
 
 'SI' (ERRO > 1.0D-12) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

**********************************************************************************
**********************************************************************************
***************************  Supersonic outlet ***********************************
**********************************************************************************
**********************************************************************************

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' -15. 'UX' 1. 'UZ' -5.
    ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
   
 CHPLI CACCA = 'KOPS' MATRIK ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'OUTSS'  ;

* Calcul de RCHLIM en gibiane

 RC = 'EXTRAIRE' RN PCEN 'SCAL' ;
 UXC = 'EXTRAIRE' VN PCEN 'UX' ;
 UYC = 'EXTRAIRE' VN PCEN 'UY' ;
 UZC = 'EXTRAIRE' VN PCEN 'UZ' ;
 PC = 'EXTRAIRE' PN PCEN 'SCAL' ;

 CHLIM2 = 'MANU' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' RC 'UX'
    UXC 'UY' UYC 'UZ' UZC 'PN' PC ;

 ERRO = 'MAXIMUM' (CHLIM2 '-' RCHLIM) 'ABS' ;

 'SI' (ERRO > 1.0D-12) ;
    'ERREUR' 5 ;
 'FINSI' ;


*
**** Jacobian with respect to primitive variable
*
 
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'OUTSS'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'OUTSS'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

  
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'OUTSS'  ;

 DRESDUXN = (RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'OUTSS'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'OUTSS'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'OUTSS'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'OUTSS'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTSS'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTSS'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTSS'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTSS'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTSS'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

**********************************************************************************
**********************************************************************************
***************************  Pressure at the outlet ******************************
**********************************************************************************
**********************************************************************************
*
* We solve a Riemann probleme between the state in the center and
* the same state but the pressure equal to the pressure at the outlet
* We use AUSMPLUS
*
*
***** Calcul du residu dans le cas particulier PF = PC
*

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' -15. 'UX' 1.
      'UZ' -3.1 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
   
 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 1 'PN' 2.1 ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'OUTP'  ;

* Surfaces and volumes are constant

 SURSVOL = -1 * ('MAXIMUM' ('DOMA' $DOMINT 'SURFACE')) '/'
           ('MAXIMUM' ('DOMA' $DOMINT 'VOLUME')) ;
 UXC = ('EXTRAIRE' VN 'UX' PCEN) ;
 UYC = ('EXTRAIRE' VN 'UY' PCEN) ;
 UZC = ('EXTRAIRE' VN 'UZ' PCEN) ;
 UNORM = -1 * UZC ;
 PC =  'EXTRAIRE' PN PCEN 'SCAL' ;
 RC = 'EXTRAIRE' RN PCEN 'SCAL' ;
 GAMC = 'EXTRAIRE' GAMN PCEN 'SCAL' ;
 
 FMASS = RC '*' UNORM ;
 FUN   = (RC '*' UNORM '*' UNORM) '+' PC ;
 FUX   = (RC '*' UNORM '*' UXC) ;
 FUY   = (RC '*' UNORM '*' UYC) ;
 FUZ   = -1 * FUN ;
 FEN   = (UNORM '*' ((GAMC/(GAMC-1)) '*' PC)) '+'
          (0.5 '*' UNORM '*' RC '*'
          ((UNORM '*' UNORM) '+' (UXC '*' UXC) '+' (UYC '*' UYC)))
          ;
 RCHRES1 = 'MANUEL' 'CHPO' ('MANUEL' 'POI1' PCEN) 5
   'VAR1' (SURSVOL '*' FMASS) 'VAR2' (FUX '*' SURSVOL) 'VAR3' (FUY '*'
   SURSVOL) 'VAR4' (FUZ '*' SURSVOL) 'VAR5' (FEN '*' SURSVOL) ;
   
 ERRO = 'MAXIMUM' (RCHRES '-' RCHRES1) 'ABS' ;

 'SI' (ERRO > 1.0D-12) ;
    'ERREUR' 5 ;
 'FINSI' ;

* Calcul de RCHLIM en gibiane

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' -15. 'UX' 1.
    'UZ' -1.17 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
   
 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 1 'PN' 4.1 ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'OUTP'  ;

* Calcul de RCHLIM en gibiane

 RC = 'EXTRAIRE' RN PCEN 'SCAL' ;
 UXC = 'EXTRAIRE' VN PCEN 'UX' ;
 UYC = 'EXTRAIRE' VN PCEN 'UY' ;
 UZC = 'EXTRAIRE' VN PCEN 'UZ' ;
 PF = 'MAXIMUM' CHPLI ;

 CHLIM2 = 'MANU' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' RC 'UX'
    UXC 'UY' UYC 'PN' PF 'UZ' UZC ;

 ERRO = 'MAXIMUM' (CHLIM2 '-' RCHLIM) 'ABS' ;

 'SI' (ERRO > 1.0D-12) ;
    'ERREUR' 5 ;
 'FINSI' ;

 
*
**** Jacobian with respect to primitive variable
*
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'OUTP'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'OUTP'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'OUTP'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'OUTP'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'OUTP'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'OUTP'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'OUTP'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTP'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTP'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTP'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTP'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'OUTP'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

**********************************************************************************
**********************************************************************************
***************************  INSU ************************************************
**********************************************************************************
**********************************************************************************
*
* Total enthalpy, entropy, tangential velocity at the inlet
* Normal velocity inside
*
* We solve a Riemann probleme between the state at the interface thus
* reconstructed and the state at the center
*
***** Calcul du residu dans le cas particulier UF = UC
*

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 0. 'UX' 0. 'UZ' 1.11
 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
 RHTN = RETN '+' PN ;
 HTN = RHTN '/' RN ;
 UXC = ('EXTRAIRE' VN 'UX' PCEN) ;
 UYC = ('EXTRAIRE' VN 'UY' PCEN) ;
 UZC = ('EXTRAIRE' VN 'UZ' PCEN) ;

 SN = PN '/' (RN '**' ('MAXI' GAMN)) ;
   
 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 2 'HT' ('MAXIMUM' HTN)
    'S' ('MAXIMUM' SN) ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INSU'  ;

 SURSVOL = ('MAXIMUM' ('DOMA' $DOMINT 'SURFACE')) '/'
           ('MAXIMUM' ('DOMA' $DOMINT 'VOLUME')) ;
 UXC = ('EXTRAIRE' VN 'UX' PCEN) ;
 UYC = ('EXTRAIRE' VN 'UY' PCEN) ;
 UZC = ('EXTRAIRE' VN 'UZ' PCEN) ;
 UNORM = UZC ;
 PC =  'EXTRAIRE' PN PCEN 'SCAL' ;
 RC = 'EXTRAIRE' RN PCEN 'SCAL' ;
 GAMC = 'EXTRAIRE' GAMN PCEN 'SCAL' ;
 
 FMASS = RC '*' UNORM ;
 FUZ   = (RC '*' UNORM '*' UNORM) '+' PC ;
 FUX   = (RC '*' UNORM '*' UXC) ;
 FUY   = (RC '*' UNORM '*' UYC) ;
 FEN   = (UNORM '*' ((GAMC/(GAMC-1)) '*' PC)) '+'
          (0.5 '*' UNORM '*' RC '*' ((UXC '*' UXC) '+' (UYC '*' UYC)
          '+' (UZC '*' UZC))) ;
 RCHRES1 = 'MANUEL' 'CHPO' ('MANUEL' 'POI1' PCEN) 5
   'VAR1' (SURSVOL '*' FMASS) 'VAR2' (FUX '*' SURSVOL) 'VAR3' (FUY '*'
   SURSVOL) 'VAR4' (FUZ '*' SURSVOL) 'VAR5' (FEN '*' SURSVOL) ;

 ERRO = 'MAXIMUM' (RCHRES1 '-' RCHRES) 'ABS' ;

 'SI' (ERRO > 1.0D-6) ;
    'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to primitive variable
*

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 1.13 'UX' 1.16
   'UZ' 1.11  ;
 GN = RN * VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
 

 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 2 'HT' (('MAXIMUM' HTN) *
   1.11) 'S' (('MAXIMUM' SN) '*' 1.13) ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INSU'  ;
   
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INSU'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'INSU'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'INSU'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'INSU'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'INSU'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'INSU'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INSU'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INSU'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INSU'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INSU'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INSU'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INSU'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

**********************************************************************************
**********************************************************************************
***************************  INJELM ************************************************
**********************************************************************************
**********************************************************************************
*
* We impose RT and the normal momontum at the inlet.
*
***** Calcul du residu dans le cas particulier UF = UC
*

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 1. 'UX' 1.2
   'UZ' 1.13 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
 MOME = 1.13 * 1.1 ;
 RT   = 2.1 '/' 1.1 ;

 PC  = ('EXTRAIRE' PN 'SCAL' PCEN) ;
 RC  = ('EXTRAIRE' RN 'SCAL' PCEN) ;

 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 2 'RT' RT
    'MOME' MOME ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INJELM'  ;

 RCHLIM1 = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' RC 'PN' PC
   'UX' 0.0 'UY' 0.0 'UZ' 1.13 ;

 ERRO = 'MAXIMUM' (RCHLIM1 '-' RCHLIM) 'ABS' ;

 'SI' (ERRO > 1.0D-6) ;
    'ERREUR' 5 ;
 'FINSI' ;

 SURSVOL = 2.50000E-1  '/'  1.25000E-1  ;
 GAMC = 'EXTRAIRE' GAMN PCEN 'SCAL' ;

 FMASS = MOME ;
 FUX   = 0.0 ;
 FUY   = 0.0 ;
 FUZ   = (MOME * 1.13) '+' PC ;
 HIN   = (GAMC/(GAMC-1)) '*' (PC '/' RC) ;
 ECIN = 0.5 '*' (1.13 * 1.13) ;
 FEN   = MOME '*' (HIN '+' ECIN)
          ;
 RCHRES1 = 'MANUEL' 'CHPO' ('MANUEL' 'POI1' PCEN) 5
   'VAR1' (SURSVOL '*' FMASS) 'VAR2' (FUX '*' SURSVOL) 'VAR3' (FUY '*'
   SURSVOL) 'VAR4' (FUZ '*' SURSVOL) 'VAR5' (FEN '*' SURSVOL) ;

  
 ERRO = 'MAXIMUM' (RCHRES1 '-' RCHRES) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

 

* JACOBIANS 

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 1.11 'UX' -1.3 'UZ'
   1.5 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
   
 MOME = 0.111 ;
 RT   = 4.1 ;

 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 2 'RT' RT
    'MOME' MOME ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INJELM'  ;
                 
*
**** Jacobian with respect to primitive variable
*


 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INJELM'  ;
   
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INJELM'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'INJELM'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'INJELM'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'INJELM'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'INJELM'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'INJELM'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INJELM'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJELM'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJELM'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJELM'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJELM'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJELM'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

**********************************************************************************
**********************************************************************************
***************************  INJE ************************************************
**********************************************************************************
**********************************************************************************
*
* We impose RT and the normal momontum at the inlet.
*
***** Calcul du residu dans le cas particulier inj // uz
*

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.3 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 1. 'UX' 1.2
   'UZ' 1.13 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
 MOME = 16. ;
 RT   = 4.1  ;

 UZC = ('EXTRAIRE' VN 'UZ' PCEN) ;
 PC  = ('EXTRAIRE' PN 'SCAL' PCEN) ;
 RC  = ('EXTRAIRE' RN 'SCAL' PCEN) ;
 GAMC = ('EXTRAIRE' GAMN 'SCAL' PCEN) ;
 UNC = UZC ;
 CC = GAMC * (PC '/' RC) ;
 CC = CC '**' 0.5 ;
 ACEL = CC '/' GAMC ;
 BCEL = ACEL '-' UNC ;
 CCEL = (MOME '/' PC) '*' RT ;
 PF = BCEL '+' (((BCEL * BCEL) '+' (4 '*' ACEL '*' CCEL)) '**' 0.5) ;
 PF = PC '*' (PF '/' (2 '*' ACEL)) ;
 RF = PF '/' RT ;
 UNF = MOME '/' RF ;
 UZF = UNF ;
 
 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 2 'RT' RT
    'MOME' MOME ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INJE'  ;

 RCHLIM1 = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 5 'RN' RF 'PN' PF
   'UX' 0.0 'UY' 0.0 'UZ' UZF ;

 ERRO = 'MAXIMUM' (RCHLIM1 '-' RCHLIM) 'ABS' ;

 'SI' (ERRO > 1.0D-6) ;
    'ERREUR' 5 ;
 'FINSI' ;

 SURSVOL = 2.50000E-1  '/'  1.25000E-1  ;
 GAMC = 'EXTRAIRE' GAMN PCEN 'SCAL' ;

*        F1=RHOUF*SURF/VOLU
*        F2=(RHOUF*UX+P*CNX)*SURF/VOLU 
*        F3=(RHOUF*UY+P*CNY)*SURF/VOLU
*        F4=(RHOUF*((GAMC*USGM1*PSRF)+ECIN))*SURF/VOLU 
 
 FMASS = MOME ;
 FUX   = 0.0 ;
 FUY   = 0.0 ;
 FUZ   = (MOME * UZF) '+' PF ;
 HIN   = (GAMC/(GAMC-1)) '*' (PF '/' RF) ;
 ECIN = 0.5 '*' (UZF * UZF) ;
 FEN   = MOME '*' (HIN '+' ECIN) ;
 
 RCHRES1 = 'MANUEL' 'CHPO' ('MANUEL' 'POI1' PCEN) 5
   'VAR1' (SURSVOL '*' FMASS) 'VAR2' (FUX '*' SURSVOL) 'VAR3' (FUY '*'
   SURSVOL) 'VAR4' (FUZ '*' SURSVOL) 'VAR5' (FEN '*' SURSVOL) ;


 ERRO = 'MAXIMUM' (RCHRES1 '-' RCHRES) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* JACOBIANS 

 RN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.1 ;
 PN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 2.1 ;
 GAMN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 1 'SCAL' 1.37 ;
 VN = 'MANUEL' 'CHPO' ($DOMINT . 'CENTRE') 3 'UY' 1.11 'UX' -1.3 'UZ'
   1.5 ;

 GN = RN '*' VN ;
 RETN = (('INVERSE' (GAMN '-' 1)) '*' PN)  '+' (0.5 '*' ('PSCAL' VN GN
   ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) ;
   
 MOME = 0.111 ;
 RT   = 4.1 ;

 CHPLI = 'MANUEL' 'CHPO' ($ENTREE . 'CENTRE') 2 'RT' RT
    'MOME' MOME ;

 LISTC = 'MOTS' 'VAR1' 'VAR2' 'VAR3' 'VAR4' 'VAR5' ;
 LISTP = 'MOTS' 'RN  ' 'UX  ' 'UY  ' 'UZ  ' 'PN  ' ;

 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INJE'  ;
                 
*
**** Jacobian with respect to primitive variable
*


 RCHLIM RCHRES = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN VN PN GAMN CHPLI 'INJE'  ;
   
 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOPRIM' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INJE'  ;


 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 (RN '+' DR) VN PN GAMN CHPLI 'INJE'  ;

 DRESDRN = ( RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 1.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* UX

 DUXSCAL = EPS '*'  ('EXTRAIRE' VN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUX) PN GAMN CHPLI 'INJE'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 1.0 'UY' 0.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* UY

 DUYSCAL = EPS '*'  ('EXTRAIRE' VN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUY) PN GAMN CHPLI 'INJE'  ;

 DRESDUYN = ( RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 1.0 'UZ' 0.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* UZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' VN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN (VN '+' DUZ) PN GAMN CHPLI 'INJE'  ;

 DRESDUZN = ( RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 1.0 'PN' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* PN
 
 DPSCAL = EPS '*'  ('EXTRAIRE' PN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DP = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DPSCAL) ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN  VN (PN '+' DP) GAMN CHPLI 'INJE'  ;

 DRESDPN = ( RCHRES1 '-'  RCHRES) '/' DPSCAL ;
 DRESDP  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'RN' 0.0
           'UX' 0.0 'UY' 0.0 'UZ' 0.0 'PN' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDP '-' DRESDPN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

*
**** Jacobian with respect to conservative variables
*

 RJACO = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'JACOCONS' MDOMINT MENTREE
          LISTC LISTP
          RN VN PN GAMN CHPLI 'INJE'  ;

 EPS=1.0D-6 ;

* RN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN '+' DR ;
 GN1 = GN ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJE'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 1.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUX

 DUXSCAL = EPS '*'  ('EXTRAIRE' GN 'UX' PCEN) ;
 DUX = ('MANUEL' 'CHPO' ELE1 1 'UX' DUXSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUX ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJE'  ;

 DRESDUXN = ( RCHRES1 '-'  RCHRES) '/' DUXSCAL ;
 DRESDUX  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 1.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUX '-' DRESDUXN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;

* RUY

 DUYSCAL = EPS '*'  ('EXTRAIRE' GN 'UY' PCEN) ;
 DUY = ('MANUEL' 'CHPO' ELE1 1 'UY' DUYSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUY ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJE'  ;

 DRESDUYN = (RCHRES1 '-'  RCHRES) '/' DUYSCAL ;
 DRESDUY  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 1.0 'VAR4' 0.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUY '-' DRESDUYN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 

* RUZ

 DUZSCAL = EPS '*'  ('EXTRAIRE' GN 'UZ' PCEN) ;
 DUZ = ('MANUEL' 'CHPO' ELE1 1 'UZ' DUZSCAL) ;

 RN1 = RN ;
 GN1 = GN '+' DUZ ;
 RETN1 = RETN ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJE'  ;

 DRESDUZN = (RCHRES1 '-'  RCHRES) '/' DUZSCAL ;
 DRESDUZ  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 1.0 'VAR5' 0.0) ;

 ERRO = 'MAXIMUM' (DRESDUZ '-' DRESDUZN) 'ABS' ;
 
 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
* RETN
 
 DRSCAL = EPS '*'  ('EXTRAIRE' RETN 'SCAL' PCEN) ;
 ELE1 = 'MANUEL' 'POI1' PCEN ;
 DR = ('MANUEL' 'CHPO' ELE1 1 'SCAL' DRSCAL) ;

 RN1 = RN ;
 GN1 = GN ;
 RETN1 = RETN '+' DR ;

 VN1 PN1 = 'PRIM' 'PERFMONO' RN1 GN1 RETN1 GAMN ;

 RCHLIM RCHRES1 = 'KONV' 'VF' 'PERFMONO' 'CLIM'  'RESI' MDOMINT MENTREE
                 LISTC LISTP
                 RN1 VN1 PN1 GAMN CHPLI 'INJE'  ;

 DRESDRN = (RCHRES1 '-'  RCHRES) '/' DRSCAL ;
 DRESDR  = 'KOPS' RJACO '*' ('MANUEL' 'CHPO' ELE1 5 'VAR1' 0.0
           'VAR2' 0.0 'VAR3' 0.0 'VAR4' 0.0 'VAR5' 1.0) ;

 ERRO = 'MAXIMUM' (DRESDR '-' DRESDRN) 'ABS' ;

 'SI' (ERRO > 1.0D-3) ;
     'ERREUR' 5 ;
 'FINSI' ;
 
 'FIN' ;
 

 

