$$$$ CCDONCHI
* CCDONCHI  PROCEDUR  AURI      98/12/29    21:16:08     3419           
 DEBPROC CCDONCHI DOMHYB*TABLE TYPG*MOT TB1*OBJET ;
 'SI' ('NON' ( 'EGA' ( TB1. 'CLASSE' ) 'DONCHI2 ' )) ;
 MESS ' on attend un objet de CLASSE DONCHI2 ' ;
 QUITTER CCDONCHI ;
 FINSI ;
 TBTT= OBJET DONCHI2 ;
 CTOTT= TB1%ACCES GTOT ;
 CLOGCT= TB1%ACCES GLOGC ;
 CTOT= CTOTT- CTOTT ;
 CLOGC= CLOGCT - CLOGCT ;
 LICOMP= 'EXTR' CTOTT 'COMP' ;
 NBCOMP= DIME LICOMP ;
 REPE BOU1 NBCOMP ;
 MO1= EXTR LICOMP &BOU1 ;
 CTOT1= EXCO CTOTT MO1 MO1 ;
 CLOGC1= EXCO CLOGCT MO1 MO1 ;
 CTOT2= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' MO1 0 CTOT1 ;
 CLOGC2= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' MO1 0 CLOGC1 ;
 CTOT= CTOT+ CTOT2 ;
 CLOGC= CLOGC+ CLOGC2 ;
 FIN BOU1 ;
 ILFION=FAUX ;
 ILTEMP=FAUX ;
 ILNTY4=FAUX ;
 ILCLIM=FAUX ;
 'SI'  ('EXIS' TB1 'FIONI') ;
       CFIONT= TB1%ACCES GFIONI ;
       CFION= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' 'SCAL' 0 CFIONT ;
  ILFION= VRAI ;
 'FINS' ;
 'SI'  ('EXIS' TB1 'NTY4') ;
       CNTY4T= TB1%ACCES GNTY4 ;
       CNTY4= CNTY4T - CNTY4T ;
       ILNTY4= VRAI ;
       LICOM4= 'EXTR' CNTY4T 'COMP' ;
       NBCOM4= DIME LICOM4 ;
       REPE BOU3 NBCOM4 ;
       MO1= EXTR LICOM4 &BOU3 ;
       CNTY41= EXCO CNTY4T MO1 MO1 ;
       CNTY42= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' MO1 0 CNTY41 ;
       CNTY4= CNTY4+ CNTY42 ;
       FIN BOU3 ;
 'FINS' ;
 'SI'  ('EXIS' TB1 'TEMPE') ;
       CTEMPT= TB1%ACCES GTEMPE ;
       CTEMP= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' 'SCAL' 0 CTEMPT ;
  ILTEMP= VRAI ;
 'FINS' ;
 'SI'  ('EXIS' TB1 'CLIM') ;
       CCLIMT= TB1%ACCES GCLIM ;
       CCLIM= CCLIMT - CCLIMT ;
       ILCLIM= VRAI ;
       LICLIM= 'EXTR' CCLIMT 'COMP' ;
       NBCLIM= DIME LICLIM ;
       REPE BOU4 NBCLIM ;
       MO1= EXTR LICLIM &BOU4 ;
       CCLIM1= EXCO CCLIMT MO1 MO1 ;
       CCLIM2= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' MO1 0 CCLIM1 ;
       CCLIM= CCLIM+ CCLIM2 ;
       FIN BOU4 ;
 'FINS' ;
*
 REPE BOUINF ;
 ARGU TB2/OBJET ;
 'SI' ('NON' ( 'EXIS'  TB2 )) ;
 QUITTER BOUINF ;
 FINSI ;
 'SI' ('NON' ( 'EGA' ( TB2. 'CLASSE' ) 'DONCHI2 ' )) ;
 MESS ' on attendait un objet de CLASSE DONCHI2 ' ;
 QUITTER BOUINF ;
 FINSI ;
 CTOTT= TB2%ACCES GTOT ;
 CLOGCT= TB2%ACCES GLOGC ;
 REPE BOU2 NBCOMP ;
 MO1= EXTR LICOMP &BOU2 ;
 CTOT1= EXCO CTOTT MO1 MO1 ;
 CTOT3= EXCO CTOT MO1 MO1 ;
 CLOGC1= EXCO CLOGCT MO1 MO1 ;
 CLOGC3= EXCO CLOGC MO1 MO1 ;
 CTOT2= KCHT DOMHYB SCAL TYPG COMP MO1 0 CTOT3 CTOT1  ;
 CLOGC2= KCHT DOMHYB SCAL TYPG COMP MO1 0 CLOGC3 CLOGC1 ;
 CTOT= CTOT+ CTOT2 - CTOT3 ;
 CLOGC= CLOGC+ CLOGC2 - CLOGC3 ;
 FIN BOU2 ;
 'SI' ILFION ;
 'SI'  ('EXIS' TB2 'FIONI') ;
       CFIONT= TB2%ACCES GFIONI ;
      CFION2='KCHT' DOMHYB 'SCAL' TYPG 'COMP' 'SCAL' 0 CFION CFIONT ;
       CFION= CFION2 ;
 'SINON';
  ILFION= FAUX ;
 'MESS' 'Il manque la force ionique dans l OBJET ' (&BOUINF+1)
 ' on ne la prendra pas en compte' ;
 'FINS'  ;
 'SINON' ;
 'SI'  ('EXIS' TB2 'FIONI') ;
 'MESS' 'Il manque la force ionique dans l OBJET 1'
 ' on ne la prendra pas en compte' ;
 'FINS'  ;
 'FINS'  ;
 'SI' ILTEMP ;
 'SI'  ('EXIS' TB2 'TEMPE') ;
       CTEMPT= TB2%ACCES GTEMPE ;
       CTEMP2='KCHT' DOMHYB 'SCAL' TYPG 'COMP' 'SCAL' 0 CTEMP CTEMPT ;
       CTEMP= CTEMP2 ;
 'SINON';
  ILTEMP= FAUX ;
 'MESS' 'Il manque la température dans l OBJET ' (&BOUINF+1)
 ' on ne la prendra pas en compte' ;
 'FINS'  ;
 'SINON';
 'SI'  ('EXIS' TB2 'TEMPE') ;
 'MESS' 'Il manque la température dans l OBJET 1 '
 ' on ne la prendra pas en compte' ;
 'FINS'  ;
 'FINS'  ;
 'SI'  ILNTY4 ;
 'SI'  ('EXIS' TB2 'NTY4') ;
       CNTY4T= TB2%ACCES GNTY4 ;
       REPE BOU5 NBCOM4 ;
       MO1= EXTR LICOM4 &BOU5 ;
       CNTY41= EXCO CNTY4T MO1 MO1 ;
       CNTY43= EXCO CNTY4 MO1 MO1 ;
       CNTY42= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' MO1 0 CNTY43 CNTY41 ;
       CNTY4= CNTY4+ CNTY42 - CNTY43 ;
       FIN BOU5 ;
 'SINON';
        ILNTY4= FAUX ;
       'MESS' 'Il manque l indice NTY4 dans l OBJET ' (&BOUINF+1)
       ' on ne le prendra pas en compte' ;
 'FINS' ;
 'SINON';
 'SI'  ('EXIS' TB2 'NTY4') ;
       'MESS' 'Il manque l indice NTY4 dans l OBJET 1 '
       ' on ne le prendra pas en compte' ;
 'FINS' ;
 'FINS' ;
 'SI'  ILCLIM ;
 'SI'  ('EXIS' TB2 'CLIM') ;
       CCLIMT= TB2%ACCES GCLIM ;
       REPE BOU6 NBCLIM ;
       MO1= EXTR LICLIM &BOU6 ;
       CCLIM1= EXCO CCLIMT MO1 MO1 ;
       CCLIM3= EXCO CCLIM MO1 MO1 ;
       CCLIM2= 'KCHT' DOMHYB 'SCAL' TYPG 'COMP' MO1 0 CCLIM3 CCLIM1 ;
       CCLIM= CCLIM+ CCLIM2 - CCLIM3 ;
       FIN BOU6 ;
 'SINON';
        ILCLIM= FAUX ;
       'MESS' 'Il manque l indice CLIM dans l OBJET ' (&BOUINF+1)
       ' on ne le prendra pas en compte' ;
 'FINS' ;
 'SINON';
 'SI'  ('EXIS' TB2 'CLIM') ;
       'MESS' 'Il manque l indice CLIM dans l OBJET 1 '
       ' on ne le prendra pas en compte' ;
 'FINS' ;
 'FINS' ;
 FIN BOUINF ;
 TBTT%GTOT CTOT ;
 TBTT%GLOGC CLOGC ;
 'SI' ILFION ;
 TBTT%GFIONI CFION ;
 'FINS';
 'SI' ILTEMP ;
 TBTT%GTEMPE CTEMP ;
 'FINS';
 'SI'  ILNTY4 ;
 TBTT%GNTY4 CNTY4 ;
 'FINS';
 'SI'  ILCLIM ;
 TBTT%GCLIM CCLIM ;
 'FINS';
 FINP TBTT ;
