CHARACTER*2 A(15),AL(92) REAL NA(15),AW(92),MW,W(20),PC,TPC MW=0.0 TPC=0.0 C DATA AL/'H ','HE', 1 'LI','BE','B ','C ','N ','O ','F ','NE', 2 'NA','MG','AL','SI','P ','S ','CL','AR', 3 'K ','CA','GA','GE','AS','SE','BR','KR', 4 'RB','SR','IN','SN','SB','TE','I ','XE', 5 'CS','BA','TL','PB','BI','PO','AT','RN', 6 'SC','TI','V ','CR','MN','FE','CO','NI','CU','ZN', 7 'Y ','ZR','NB','MO','TC','RU','RH','PD','AG','CD', 8 'LA','HF','TA','W ','RE','OS','IR','PT','AU','HG', 9 'CE','PR','ND','PM','SM','EU','GD', 1 'TB','DY','HO','ER','TM','YB','LU', 2 'FR','RA','AC','TH','PA','U '/ C WRITE(*,7) 7 FORMAT(/10X,'THIS PROGRAM WAS WRITTEN BY CHANDRA.') WRITE(*,8) 8 FORMAT(1X,'[ATOMIC WEIGHTS ACC. TO INORGANICA CHIMICA ACTA, 217, 1 217 (1994).]') DATA AW/1.0079,4.0026, 1 6.96,9.012,10.811,12.011,14.007,15.999,18.998,20.18, 2 22.99,24.305,26.982,28.086,30.974,32.066,35.453,39.948, 3 39.098,40.078,69.723,72.61,74.922,78.96,79.904,83.8, 4 85.468,87.62,114.82,118.71,121.76,127.6,126.9,131.29, 5 132.91,137.33,204.38,207.2,208.98,209.98,209.99,222.02, 6 44.956,47.867,50.942,51.996,54.938,55.845,58.933,58.693,63.546, 6 65.39, 88.906, 7 91.224,92.906,95.94,98.906,101.07,102.91,106.42,107.87,112.41, 8 138.91,178.49,180.95,183.84,186.21,190.23,192.22,195.08,196.97, 8 200.59, 9 140.12,140.91,144.24,146.92,150.36,151.96,157.25, 1 158.93,162.5,164.93,167.26,168.93,173.04,174.97, 2 223.02,226.03,227.03,232.04,231.04,238.03/ C 1 CONTINUE WRITE(*,*)' ' WRITE(*,*)'ENTER ELEMENT NAMES (A2 FORMAT; ex: C H N O CLI):' READ(*,'(15A2)',END=100)(A(I),I=1,15) 100 CONTINUE DO 110 I=1,15 NUM1=ICHAR(A(I)(1:1)) IF (NUM1.GT.96) A(I)(1:1)=CHAR(NUM1-32) NUM1=ICHAR(A(I)(2:2)) IF (NUM1.GT.96) A(I)(2:2)=CHAR(NUM1-32) 110 CONTINUE IF(A(1).EQ.'XX') THEN WRITE(*,11)(AL(I),AW(I),I=1,92) STOP ' ' ELSE ENDIF 11 FORMAT(2X,A2,2X,F10.4) DO 99 NEL=15,1,-1 DO 99 LA=1,92 IF (A(NEL).EQ.AL(LA)) GOTO 101 99 CONTINUE STOP 'NO ATOM MATCHING WITH THE LIST!!' 101 CONTINUE IF (NEL.EQ.1) STOP 'THE PERCENTAGE IS 100 !!!' WRITE(*,12)NEL 12 FORMAT(' ENTER NUMBER OF EACH ',I2,' ELEMENTS PRESENT:') WRITE(*,*)'in the same order (ex: 6 1 4.00 1 3.50 1 1)' READ(*,*)(NA(I),I=1,NEL) WRITE(*,21)(A(I),NA(I),I=1,NEL) 21 FORMAT(3X,15(A2,F6.2,'; ')) WRITE(*,*)' ' DO 300 I=1,NEL DO 299 J=1,92 IF(A(I).EQ.AL(J)) THEN MW=MW+NA(I)*AW(J) W(I)=NA(I)*AW(J) GO TO 300 ELSE ENDIF 299 CONTINUE 300 CONTINUE WRITE(*,30)MW 30 FORMAT(6X,' MOLECULAR WEIGHT = ',F8.3,/) IF(MW.EQ.0.0) GO TO 1 DO 400 I=1,NEL PC=W(I)*100/MW TPC=TPC+PC WRITE(*,31)A(I),PC 31 FORMAT(6X,'PERCENTAGE OF ',A2,' = ',F8.4) 400 CONTINUE WRITE(*,*)' ' WRITE(*,32)TPC 32 FORMAT(6X,'TOTAL PERCENTAGE = ',F10.5/) STOP' ***** COMPLETED *****' END