subroutine atomic (element, number, value) ! look up atomic no. and weight of some common elements ! JWP 22/10/98 implicit none character *(*), intent (in) :: element real, intent (out) :: value integer, intent(out) :: number integer, parameter :: na=12 integer, dimension(1:na), parameter :: an = & (/17, 35, 11, 20, 6, 1, 7, 8, 16, 9, 53, 19/) real, dimension(1:na), parameter :: aw = & (/35.5, 79.9, 22.0 , 40.1, 12.0 , 1.0, 14.0, 16.0, 32.1, 19.0, 126.9, 39.1/) character*48, parameter :: ename = & 'Cl,Br,Na,Ca,C ,H ,N , O ,S ,F ,I ,K ' integer :: i character *(2) :: copy ! copy = adjustl(element) // ' ' ; copy = copy(1:2) ! fiddle with length etc. i = index (ename,copy) ! look up element in list if (i==0) then print *, 'I do not have data for element ' // element value = 0.0 ; number = 0 return end if ! i = (i-1)/3 + 1 ! Table entry number value = aw (i) number = an (i) end subroutine atomic