Download @gattpar.procedur

Back to the list

   1 : * @GATTPAR  PROCEDUR  JC220346  12/09/12    21:15:07     7501           
   2 : 'DEBP' @GATTPAR fichier*'MOT' ;
   3 : *
   4 : *
   5 : 'OPTI' 'ACQUERIR' fichier ;
   6 : *
   7 : *-- DEBUT DE LECTURE PREMIERE PARTIE DU FICHIER de nom fichier
   8 : *
   9 : *-- IDEGE : degre du polynome Em(T) decrivant le module d'Young
  10 : 'ACQU' BLABLA*'MOT' ;
  11 : 'ACQU' IDEGE*'ENTIER' ;
  12 : 'SI' ('<' IDEGE 0) ;
  13 :   'MESS' 'ERREUR: le degre du polynome relatif au module d Young' ;
  14 :   'MESS' 'est negatif !' ;
  15 :   'QUIT' @GATTPAR ;
  16 : 'FINS' ;
  17 : *
  18 : *-- LEE liste des coefficients du polynome relatif au module d'Young
  19 : *       du degre 0 au degre IDEGE
  20 : LEE='PROG' ;
  21 : 'REPE' BLOC (IDEGE+1) ;
  22 :   'ACQU' EEI*'FLOTTANT' ;
  23 :   LEE = LEE 'ET' ('PROG' EEI) ;
  24 : 'FIN' BLOC ;
  25 : *
  26 : *-- IDEGG : degre du polynome Gm(T) decrivant le module de cisaillement
  27 : 'ACQU' BLABLA*'MOT' ;
  28 : 'ACQU' IDEGG*'ENTIER' ;
  29 : 'SI' ('<' IDEGG 0) ;
  30 :   'MESS'
  31 :     'ERREUR: le degre du polynome relatif au module de cisaillement' ;
  32 :   'MESS' 'est negatif !' ;
  33 :   'QUIT' @GATTPAR ;
  34 : 'FINS' ;
  35 : *
  36 : *-- LGG liste des coefficients du polynome relatif au module de
  37 : *       cisaillement du degre 0 au degre IDEGG
  38 : LGG='PROG' ;
  39 : 'REPE' BLOC (IDEGG+1) ;
  40 :   'ACQU' GGI*'FLOTTANT' ;
  41 :   LGG = LGG 'ET' ('PROG' GGI) ;
  42 : 'FIN' BLOC ;
  43 : *
  44 : *-- IDEGAI : degre du polynome Alpham(T) decrivant
  45 : *--          le coefficient de dilatation thermique pour T < Talpha
  46 : 'ACQU' BLABLA*'MOT' ;
  47 : 'ACQU' IDEGAI*'ENTIER' ;
  48 : 'SI' ('<' IDEGAI 0) ;
  49 :   'MESS'
  50 :     'ERREUR: le degre du polynome relatif au coefficient de dilatation';
  51 :   'MESS' 'thermique est negatif !' ;
  52 :   'QUIT' @GATTPAR ;
  53 : 'FINS' ;
  54 : *
  55 : *-- LALI liste des coefficients du polynome relatif au coefficient de
  56 : *--      dilatation thermique du degre 0 au degre IDEGAI
  57 : LALI='PROG' ;
  58 : 'REPE' BLOC (IDEGAI+1) ;
  59 :   'ACQU' ALII*'FLOTTANT' ;
  60 :   LALI = LALI 'ET' ('PROG' ALII) ;
  61 : 'FIN' BLOC ;
  62 : *
  63 : *-- IDEGAS : degre du polynome Alpham(T) decrivant
  64 : *--          le coefficient de dilatation thermique pour T > Talpha
  65 : 'ACQU' IDEGAS*'ENTIER' ;
  66 : 'SI' ('<' IDEGAS 0) ;
  67 :   'MESS'
  68 :     'ERREUR: le degre du polynome relatif au coefficient de dilatation';
  69 :   'MESS' 'thermique est negatif !' ;
  70 :   'QUIT' @GATTPAR ;
  71 : 'FINS' ;
  72 : *
  73 : *-- LALS liste des coefficients du polynome relatif au coefficient de
  74 : *--      dilatation thermique du degre 0 au degre IDEGAS
  75 : LALS='PROG' ;
  76 : 'REPE' BLOC (IDEGAS+1) ;
  77 :   'ACQU' ALIS*'FLOTTANT' ;
  78 :   LALS = LALS 'ET' ('PROG' ALIS) ;
  79 : 'FIN' BLOC ;
  80 : *
  81 : *-- TALPHA : temperature de transition pour les deux polynomes decrivant
  82 : *--          le coefficient de dilatation thermique
  83 : *
  84 : 'ACQU' TALPHA*'FLOTTANT' ;
  85 : *
  86 : 'SI' ('<EG' TALPHA 0) ;
  87 :   'MESS'
  88 :     'ERREUR: la temperature de transition pour les deux polynomes' ;
  89 :   'MESS' 'decrivant le coefficient de dilatation thermique' ;
  90 :   'MESS' 'est negative ou nulle !' ;
  91 :   'QUIT' @GATTPAR ;
  92 : 'FINS' ;
  93 : *-- FIN DE LECTURE PREMIERE PARTIE DU FICHIER de nom fichier
  94 : *
  95 : *-- Liste de temperatures (en Kelvin)
  96 : TK = 'PROG' 273.15 'PAS' 10. 2603.15 ;
  97 : *-- On insere Talpha dans TK
  98 : TK = TK 'ET' ('PROG' TALPHA) ;
  99 : TK = 'ORDO' TK ;
 100 : NTK = 'DIME' TK ;
 101 : L273 = 'PROG' NTK * 273.;
 102 : *-----------------------------
 103 : *-- Construction des ordonnees : partie temperature
 104 : OEET = 'PROG' NTK*('EXTR' LEE 1) ;
 105 : 'SI' ('>' ('DIME' LEE) 1) ;
 106 :   'REPE' BLOC (('DIME' LEE) - 1) ;
 107 :     OEET = OEET + (('EXTR' LEE (&BLOC+1))*(TK**(&BLOC)));
 108 :   'FIN' BLOC ;
 109 : 'FINS' ;
 110 : *
 111 : 'MESS'
 112 :   'sur la plage de temperatures' ('MINI' TK) '< T(K) <' ('MAXI' TK) ;
 113 : 'MESS' 'et pour une porosite nulle' ;
 114 : MIOEET = 'MINI' OEET ;
 115 : MAOEET = 'MAXI' OEET ;
 116 : 'MESS' 'module d Young            compris entre' MIOEET 'et' MAOEET ;
 117 : 'SI' ('<EG' MIOEET 0) ;
 118 :   'MESS' 'ERREUR : module d Young negatif ou nul !' ;
 119 :   'QUIT' @GATTPAR ;
 120 : 'FINS' ;
 121 : *
 122 : OGGT = 'PROG' NTK*('EXTR' LGG 1) ;
 123 : 'SI' ('>' (DIME LGG) 1) ;
 124 :   'REPE' BLOC (('DIME' LGG) - 1) ;
 125 :     OGGT = OGGT + (('EXTR' LGG (&BLOC+1))*(TK**(&BLOC)));
 126 :   'FIN' BLOC ;
 127 : 'FINS' ;
 128 : *
 129 : MIOGGT = 'MINI' OGGT ;
 130 : MAOGGT = 'MAXI' OGGT ;
 131 : 'MESS' 'module de cisaillement    compris entre' MIOGGT 'et' MAOGGT ;
 132 : 'SI' ('<EG' MIOGGT 0) ;
 133 :   'MESS' 'ERREUR : module de cisaillement negatif ou nul !' ;
 134 :   'QUIT' @GATTPAR ;
 135 : 'FINS' ;
 136 : *
 137 : OALIT = 'PROG' NTK*('EXTR' LALI 1) ;
 138 : 'SI' ('>' (DIME LALI) 1) ;
 139 :   'REPE' BLOC (('DIME' LALI) - 1) ;
 140 :     OALIT = OALIT + (('EXTR' LALI (&BLOC+1))*(TK**(&BLOC)));
 141 :   'FIN' BLOC ;
 142 :   OALIT = OALIT / (TK - L273);
 143 : 'FINS' ;
 144 : *
 145 : OALST = 'PROG' NTK*('EXTR' LALS 1) ;
 146 : 'SI' ('>' (DIME LALS) 1) ;
 147 :   'REPE' BLOC (('DIME' LALS) - 1) ;
 148 :     OALST = OALST + (('EXTR' LALS (&BLOC+1))*(TK**(&BLOC)));
 149 :   'FIN' BLOC ;
 150 :   OALST = OALST / (TK - L273);
 151 : 'FINS' ;
 152 : *
 153 : ALTI = IPOL TALPHA TK OALIT ;
 154 : ALTS = IPOL TALPHA TK OALST ;
 155 : *
 156 : NTKI = TK 'MASQ' 'INFERIEUR' TALPHA 'SOMM' ;
 157 : OALIT = 'EXTR' OALIT ('LECT' 1 'PAS' 1 NTKI) ;
 158 : OALST = 'EXTR' OALST ('LECT' (NTKI+1) 'PAS' 1 NTK) ;
 159 : OALT = OALIT 'ET' OALST ;
 160 : *
 161 : * On tronque ALPHA_moy en dessous de 293K
 162 : NT293 = TK 'MASQ' 'INFERIEUR' 293. 'SOMM';
 163 : XEALTT = 'EXTR' TK ('LECT' (NT293+1) 'PAS' 1 NTK) ;
 164 : YEALTT = 'EXTR' OALT ('LECT' (NT293+1) 'PAS' 1 NTK) ;
 165 : * On remplace la partie enlevée par une IPOL entre
 166 : * ALPHA_moy(T=0) et ALPHA_moy(T=293)
 167 : AL0 = ('EXTR' LALI 1) / (0. - 273);
 168 : AL293 =  (('EXTR' LALI 1) +
 169 :          (('EXTR' LALI 2)*293.) +
 170 :          (('EXTR' LALI 3)*293.*293.) +
 171 :          (('EXTR' LALI 4)*293.*293.*293.)) / (293. - 273.);
 172 : XEALTN = (PROG 0. 293.) ET XEALTT;
 173 : YEALTN = (PROG AL0 AL293) ET YEALTT;
 174 : *
 175 : MIOALT = 'MINI' YEALTN ;
 176 : MAOALT = 'MAXI' YEALTN ;
 177 : 'MESS' 'coefficient de dilatation compris entre' MIOALT 'et' MAOALT ;
 178 : 'SI' ('<' MIOALT 0) ;
 179 :   'MESS' 'ERREUR : coefficient de dilatation negatif !' ;
 180 :   'QUIT' @GATTPAR ;
 181 : 'FINS' ;
 182 : *
 183 : ERRALT=100.*(ALTS-ALTI)/ ALTS ;
 184 : 'SI' ('>' ERRALT 1.D-02) ;
 185 :   'MESS' 'ATTENTION : a la temperature de transition :' TALPHA 'K' ;
 186 :   'MESS' 'les deux valeurs du coefficient de dilatation thermique' ;
 187 :   'MESS' 'different de' ERRALT '%' ALTI ALTS ;
 188 : 'FINS' ;
 189 : *
 190 : *-- Construction des evolutions obtenues pour une porosite nulle
 191 : EEET = 'EVOL' 'MANU' 'T' TK     'YOUN'  OEET   ;
 192 : EGGT = 'EVOL' 'MANU' 'T' TK     'G'     OGGT   ;
 193 : EALT = 'EVOL' 'MANU' 'T' XEALTN 'ALPH'  YEALTN ;
 194 : *
 195 : *-- DEBUT DE LECTURE SECONDE PARTIE DU FICHIER de nom fichier
 196 : *
 197 : 'ACQU' BLABLA*'MOT' ;
 198 : 'ACQU' PORY*'FLOTTANT' ;
 199 : 'ACQU' BLABLA*'MOT' ;
 200 : 'ACQU' PORG*'FLOTTANT' ;
 201 : 'ACQU' BLABLA*'MOT' ;
 202 : 'ACQU' PORA*'FLOTTANT' ;
 203 : *
 204 : *-- FIN DE LECTURE SECONDE PARTIE DU FICHIER de nom fichier
 205 : *
 206 : *-- Liste de porosites
 207 : PP = 'PROG' 0. 'PAS' 0.001 0.3 ;
 208 : NPP = 'DIME' PP ;
 209 : *-- Construction des ordonnees : partie porosite
 210 : OEEP = ('PROG' NPP*1.) - (PORY*PP) ;
 211 : MIOEEP = 'MINI' OEEP ;
 212 : 'SI' ('<EG' MIOEEP 0) ;
 213 :   'MESS' 'ATTENTION !'
 214 :   'MESS' 'sur la plage de porosite :' ('MINI' PP) '< P <' ('MAXI' PP) ;
 215 :   'MESS ' 'module d Young negatif ou nul !' ;
 216 : 'FINS' ;
 217 : *
 218 : OGGP = ('PROG' NPP*1.) - (PORG*PP) ;
 219 : MIOGGP = 'MINI' OGGP ;
 220 : 'SI' ('<EG' MIOGGP 0) ;
 221 :   'MESS' 'ATTENTION !'
 222 :   'MESS' 'sur la plage de porosite :' ('MINI' PP) '< P <' ('MAXI' PP) ;
 223 :   'MESS ' 'module de cisaillement negatif ou nul !' ;
 224 : 'FINS' ;
 225 : *
 226 : OALP = ('PROG' NPP*1.) - (PORA*PP) ;
 227 : MIOALP = 'MINI' OALP ;
 228 : 'SI' ('<EG' MIOALP 0) ;
 229 :   'MESS' 'ATTENTION !'
 230 :   'MESS' 'sur la plage de porosite :' ('MINI' PP) '< P <' ('MAXI' PP) ;
 231 :   'MESS ' 'coefficient de dilatation negatif ou nul !' ;
 232 : 'FINS' ;
 233 : *
 234 : *-- Construction des nuages
 235 : *
 236 : PP1 = 'EXTR' PP 1 ;
 237 : *
 238 : EE = 'NUAG' 'PORO'*'FLOTTANT' 'YOUN'*'EVOLUTION'
 239 :             ('EXTR' PP 1)     (EEET*('EXTR' OEEP 1)) ;
 240 : 'REPE' BLOC (NPP-1) ;
 241 :   EEI = 'NUAG' 'PORO'*'FLOTTANT'     'YOUN'*'EVOLUTION'
 242 :                ('EXTR' PP (&BLOC+1)) (EEET*('EXTR' OEEP (&BLOC+1))) ;
 243 :   EE = EE 'ET' EEI ;
 244 : 'FIN' BLOC ;
 245 : *
 246 : ETT1 = 'EVOL' 'MANU' 'T' TK 'NU' ('PROG' ('DIME'TK)*1.) ;
 247 : NU = 'NUAG' 'PORO'*'FLOTTANT' 'NU'*'EVOLUTION'
 248 :             ('EXTR' PP 1)
 249 :         ((-1.*ETT1)+(0.5*EEET*('EXTR' OEEP 1)/(EGGT*('EXTR' OGGP 1)))) ;
 250 : 'REPE' BLOC (NPP-1) ;
 251 :   NUI = 'NUAG' 'PORO'*'FLOTTANT'     'NU'*'EVOLUTION'
 252 :                ('EXTR' PP (&BLOC+1))
 253 :         ((-1.*ETT1)+(0.5*(EEET*('EXTR' OEEP (&BLOC+1)))/
 254 :           (EGGT*('EXTR' OGGP (&BLOC+1))))) ;
 255 :   NU = NU 'ET' NUI ;
 256 : 'FIN' BLOC ;
 257 : *
 258 : AL = 'NUAG' 'PORO'*'FLOTTANT' 'ALPH'*'EVOLUTION'
 259 :             ('EXTR' PP 1)     (EALT*('EXTR' OALP 1)) ;
 260 : 'REPE' BLOC (NPP-1) ;
 261 :   ALI = 'NUAG' 'PORO'*'FLOTTANT'     'ALPH'*'EVOLUTION'
 262 :                ('EXTR' PP (&BLOC+1)) (EALT*('EXTR' OALP (&BLOC+1))) ;
 263 :   AL = AL 'ET' ALI ;
 264 : 'FIN' BLOC ;
 265 : *
 266 : *-- Construction de la table contenant les informations
 267 : MATAB = 'TABL' ;
 268 : MATAB . 'YOUN' = EE ;
 269 : MATAB . 'NU'   = NU ;
 270 : MATAB . 'ALPH' = AL ;
 271 : *
 272 : *-- DEBUT DE LECTURE DERNIERE PARTIE DU FICHIER de nom fichier
 273 : *
 274 :   LCOMP = 'MOTS'  'RHO'   'R'     'DG0'   'DG'    'DGCR'
 275 :                   'K0'    'EXKP'  'KPAF'  'AP'    'BP'  'QP'
 276 :                   'K1'    'M1'    'Q1'    'N1'    'K2'  'M2'  'Q2'  'N2'
 277 :                   'OMEG'  'OMCR'  'Q'     'H'     'BETA'
 278 :                   'GAM1'  'EXTO'  'DYN1'  'DYN2'  'DYN3'
 279 :                   'K'     'A'     'Q3'    'N3'
 280 :                   'ADEN'  'KGON'  'POR0'  'BUMI'  'EFIS'
 281 :                   'CR1'   'CR2'   'CR3'   'CR';
 282 : *
 283 : 'REPE' BLOC ('DIME' LCOMP) ;
 284 :   'ACQU' BLABLA*'MOT' ;
 285 :   'ACQU' XX*'FLOTTANT' ;
 286 :   MOTI = 'EXTR' LCOMP &BLOC ;
 287 :   MATAB . MOTI = XX ;
 288 : 'FIN' BLOC ;
 289 : *
 290 : *-- Calcul de KP pour fluage primaire UO2
 291 : MATAB.'KPUO' = MATAB.'K0' * (MATAB.'DG' ** MATAB.'EXKP') ;
 292 : *-- Temps caracteristique TAU pour la fct de couplage dynamique UO2
 293 : MATAB.'TOUO' = MATAB.'GAM1' / (MATAB.'DG' ** MATAB.'EXTO') ;
 294 : *
 295 : *-- FIN DE LECTURE DERNIERE PARTIE DU FICHIER de nom fichier
 296 : *
 297 : 
 298 : 'FINP' MATAB ;
 299 : 
 300 :  

© Cast3M 2003 - All rights reserved.
Disclaimer