Subversion Repositories wimsdev

Rev

Rev 15264 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
15262 georgesk 1
!if $wims_read_parm!=slib_header
2
  !goto proc
3
!endif
4
 
5
slib_author=Georges, Khaznadar
6
slib_license=GPL
7
slib_title=Data about nucleides, or LaTeX typesetting
8
 
9
slib_example=H\
10
17\
11
6\
12
H, tex 13, +\
13
6, tex\
14
6, tex 13\
15
Pu, tex\
16
Pu, tex 239
17
!exit
18
 
19
:proc
20
slib_data=$wims_read_parm
21
nb_data = !itemcnt $slib_data
22
 
23
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
24
!! cette table des nucleides a été extraite du service
25
!! web http://nucleardata.nuclear.lu.se/toi/listnuc.asp?sql=
26
!! le 7 juillet 2020, et retraitée à l'aide d'un programme
15264 georgesk 27
!! en Python. Les éléments de 110 (Ds) à 118 (Og) ont été
15265 georgesk 28
!! repris de la page https://iupac.org/what-we-do/periodic-table-of-elements/
15262 georgesk 29
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30
slib_nucleides=1, H, 1, 99.985, 2, 0.015\
31
2, He, 3, 0.000137, 4, 99.999863\
32
3, Li, 6, 7.5, 7, 92.5\
33
4, Be, 9, 100.0\
34
5, B, 10, 19.9, 11, 80.1\
35
6, C, 12, 98.9, 13, 1.1\
36
7, N, 14, 99.634, 15, 0.366\
37
8, O, 16, 99.762, 17, 0.038, 18, 0.2\
38
9, F, 19, 100.0\
39
10, Ne, 20, 90.48, 21, 0.27, 22, 9.25\
40
11, Na, 23, 100.0\
41
12, Mg, 24, 78.99, 25, 10.0, 26, 11.01\
42
13, Al, 27, 100.0\
43
14, Si, 28, 92.23, 29, 4.67, 30, 3.1\
44
15, P, 31, 100.0\
45
16, S, 32, 95.02, 33, 0.75, 34, 4.21, 36, 0.02\
46
17, Cl, 35, 75.77, 37, 24.23\
47
18, Ar, 36, 0.337, 38, 0.063, 40, 99.6\
48
19, K, 39, 93.2581, 40, 0.0117, 41, 6.7302\
49
20, Ca, 40, 96.941, 42, 0.647, 43, 0.135, 44, 2.086, 46, 0.004, 48, 0.187\
50
21, Sc, 45, 100.0\
51
22, Ti, 46, 8.0, 47, 7.3, 48, 73.8, 49, 5.5, 50, 5.4\
52
23, V, 50, 0.25, 51, 99.75\
53
24, Cr, 50, 4.345, 52, 83.789, 53, 9.501, 54, 2.365\
54
25, Mn, 55, 100.0\
55
26, Fe, 54, 5.8, 56, 91.72, 57, 2.2, 58, 0.28\
56
27, Co, 59, 100.0\
57
28, Ni, 58, 68.077, 60, 26.223, 61, 1.14, 62, 3.634, 64, 0.926\
58
29, Cu, 63, 69.17, 65, 30.83\
59
30, Zn, 64, 48.6, 66, 27.9, 67, 4.1, 68, 18.8, 70, 0.6\
60
31, Ga, 69, 60.108, 71, 39.892\
61
32, Ge, 70, 21.23, 72, 27.66, 73, 7.73, 74, 35.94, 76, 7.44\
62
33, As, 75, 100.0\
63
34, Se, 74, 0.89, 76, 9.36, 77, 7.63, 78, 23.78, 80, 49.61, 82, 8.73\
64
35, Br, 79, 50.69, 81, 49.31\
65
36, Kr, 78, 0.35, 80, 2.25, 82, 11.6, 83, 11.5, 84, 57.0, 86, 17.3\
66
37, Rb, 85, 72.165, 87, 27.835\
67
38, Sr, 84, 0.56, 86, 9.86, 87, 7.0, 88, 82.58\
68
39, Y, 89, 100.0\
69
40, Zr, 90, 51.45, 91, 11.22, 92, 17.15, 94, 17.38, 96, 2.8\
70
41, Nb, 93, 100.0\
71
42, Mo, 92, 14.84, 94, 9.25, 95, 15.92, 96, 16.68, 97, 9.55, 98, 24.13, 100, 9.63\
72
43, Tc\
73
44, Ru, 96, 5.52, 98, 1.88, 99, 12.7, 100, 12.6, 101, 17.0, 102, 31.6, 104, 18.7\
74
45, Rh, 103, 100.0\
75
46, Pd, 102, 1.02, 104, 11.14, 105, 22.33, 106, 27.33, 108, 26.46, 110, 11.72\
76
47, Ag, 107, 51.839, 109, 48.161\
77
48, Cd, 106, 1.25, 108, 0.89, 110, 12.49, 111, 12.8, 112, 24.13, 113, 12.22, 114, 28.73, 116, 7.49\
78
49, In, 113, 4.3, 115, 95.7\
79
50, Sn, 112, 0.97, 114, 0.65, 115, 0.34, 116, 14.53, 117, 7.68, 118, 24.23, 119, 8.59, 120, 32.59, 122, 4.63, 124, 5.79\
80
51, Sb, 121, 57.36, 123, 42.64\
81
52, Te, 120, 0.096, 122, 2.603, 123, 0.908, 124, 4.816, 125, 7.139, 126, 18.95, 128, 31.69, 130, 33.8\
82
53, I, 127, 100.0\
83
54, Xe, 124, 0.1, 126, 0.09, 128, 1.91, 129, 26.4, 130, 4.1, 131, 21.2, 132, 26.9, 134, 10.4, 136, 8.9\
84
55, Cs, 133, 100.0\
85
56, Ba, 130, 0.106, 132, 0.101, 134, 2.417, 135, 6.592, 136, 7.854, 137, 11.23, 138, 71.7\
86
57, La, 138, 0.0902, 139, 99.9098\
87
58, Ce, 136, 0.19, 138, 0.25, 140, 88.48, 142, 11.08\
88
59, Pr, 141, 100.0\
89
60, Nd, 142, 27.13, 143, 12.18, 144, 23.8, 145, 8.3, 146, 17.19, 148, 5.76, 150, 5.64\
90
61, Pm\
91
62, Sm, 144, 3.1, 147, 15.0, 148, 11.3, 149, 13.8, 150, 7.4, 152, 26.7, 154, 22.7\
92
63, Eu, 151, 47.8, 153, 52.2\
93
64, Gd, 152, 0.2, 154, 2.18, 155, 14.8, 156, 20.47, 157, 15.65, 158, 24.84, 160, 21.86\
94
65, Tb, 159, 100.0\
95
66, Dy, 156, 0.06, 158, 0.1, 160, 2.34, 161, 18.9, 162, 25.5, 163, 24.9, 164, 28.2\
96
67, Ho, 165, 100.0\
97
68, Er, 162, 0.14, 164, 1.61, 166, 33.6, 167, 22.95, 168, 26.8, 170, 14.9\
98
69, Tm, 169, 100.0\
99
70, Yb, 168, 0.13, 170, 3.05, 171, 14.3, 172, 21.9, 173, 16.12, 174, 31.8, 176, 12.7\
100
71, Lu, 175, 97.41, 176, 2.59\
101
72, Hf, 174, 0.162, 176, 5.206, 177, 18.606, 178, 27.297, 179, 13.629, 180, 35.1\
102
73, Ta, 180, 0.012, 181, 99.988\
103
74, W, 180, 0.13, 182, 26.3, 183, 14.3, 184, 30.67, 186, 28.6\
104
75, Re, 185, 37.4, 187, 62.6\
105
76, Os, 184, 0.02, 186, 1.58, 187, 1.6, 188, 13.3, 189, 16.1, 190, 26.4, 192, 41.0\
106
77, Ir, 191, 37.3, 193, 62.7\
107
78, Pt, 190, 0.01, 192, 0.79, 194, 32.9, 195, 33.8, 196, 25.3, 198, 7.2\
108
79, Au, 197, 100.0\
109
80, Hg, 196, 0.15, 198, 9.97, 199, 16.87, 200, 23.1, 201, 13.18, 202, 29.86, 204, 6.87\
110
81, Tl, 203, 29.524, 205, 70.476\
111
82, Pb, 204, 1.4, 206, 24.1, 207, 22.1, 208, 52.4\
112
83, Bi, 209, 100.0\
113
84, Po\
114
85, At\
115
86, Rn\
116
87, Fr\
117
88, Ra\
118
89, Ac\
119
90, Th, 232, 100.0\
120
91, Pa\
121
92, U, 235, 0.72, 238, 99.2745\
122
93, Np\
123
94, Pu\
124
95, Am\
125
96, Cm\
126
97, Bk\
127
98, Cf\
128
99, Es\
129
100, Fm\
130
101, Md\
131
102, No\
132
103, Lr\
133
104, Rf\
134
105, Db\
135
106, Sg\
136
107, Bh\
137
108, Hs\
15264 georgesk 138
109, Mt\
139
110, Ds\
140
111, Rg\
141
112, Cn\
142
113, Nh\
143
114, Fl\
144
115, Mc\
145
116, Lv\
146
117, Ts\
147
118, Og
15262 georgesk 148
 
149
nb_elements = !linecnt $slib_nucleides
150
la_ligne = ??
151
cle = !item 1 of $slib_data
152
cle1 = !char 1 of $cle
153
!if $cle1 isin 123456789
154
  !! c'est un nombre, à chercher en première position
155
  index=1
156
!else
157
  !! c'est un symbole, à chercher en deuxième position
158
  index=2
159
!endif
160
la_ligne=erreur : symbole inconnu
161
!for i=1 to $nb_elements
162
  l = !line $i of $slib_nucleides
163
  val = !item $index of $l
164
  !if $val = $cle
165
    la_ligne = $l
166
  !endif
167
!next
168
 
169
n_ligne = !itemcnt $la_ligne
170
n_stables = !eval ($n_ligne / 2) -1
171
 
172
# on construit les données pour lélément dans la variable
173
# elt_data : Z, symbole [; A, abondance]...
174
 
175
elt_data = !items 1,2 of $la_ligne
176
!if $n_stables > 0
177
  !for i=1 to $n_stables
178
    i1 = !eval 2 * $i + 1
179
    i2 = !eval $i1+1
180
    les_items = !items $i1,$i2 of $la_ligne
181
    elt_data = $elt_data; $les_items
182
  !next
183
!endif
184
 
185
!if $nb_data < 2
186
  slib_out = $elt_data
187
  !goto end
188
!endif
189
 
190
!! à ce stade, il y a au moins un deuxième paramètre
191
param2 = !item 2 of $slib_data
192
param3 = !item 3 of $slib_data
193
!if tex isin $param2
194
  !! un traduction en chaîne tex est demandée
195
  !! on regarde si un isotope particulier est requis
196
  A = !replace tex by in $param2
197
  !if $A issametext
198
    !! c'est le cas où il n'y a pas de demande d'isotope particulier
199
    !if $n_ligne > 2
200
      !! il y a au moins un isotope stable, on prend celui-là
201
      A = !item 3 of $la_ligne
202
    !else
203
      !! il n'y a pas d'isotope stable, on n'indique pas A
204
      A =
205
    !endif
206
  !endif
207
  Z = !item 1 of $la_ligne
208
  symbole = !item 2 of $la_ligne
209
  !readproc slib/chemistry/leftind $A, $Z, $symbole, $param3
210
  !goto end
211
!endif
212
 
213
:end
214
slib_out = $slib_out