1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| c-----------------------------------------------------------------------
subroutine readidtables
c read the table in KWt/ids.dt who contain all ids
c informations for particles in EPOS
c-----------------------------------------------------------------------
include "aaa.h"
parameter (ncode=5,nidtmax=600,mxindx=10000)
c integer idtbl(ncode,nidtmax),ifl1tbl(nidtmax),nlinex(ncode)
c integer ifl2tbl(nidtmax),ifl3tbl(nidtmax),jspintbl(nidtmax)
c integer chrgtbl(nidtmax),nlidtbl(mxindx),nidtmxx(ncode)
c real amtbl(nidtmax)
character line*110
c character (len=50) :: nametbl(nidtmax)
common/cidt/idtbl(ncode,nidtmax),ifl1tbl(nidtmax),
*ifl2tbl(nidtmax),ifl3tbl(nidtmax),jspintbl(nidtmax),
*chrgtbl(nidtmax),amtbl(nidtmax),nlidtbl(mxindx),
*(len=50) :: nametbl(nidtmax),nidtmxx(ncode),nlinex(ncode),nidtbl
data kids/0/
kids=kids+1
if(kids.eq.1)then
write(ifmt,'(a)') 'load ids from '
write(ifmt,'(1x,a)')fnnx(1:nfnnx)//'KWt/ids.dt'
open (95,file= fnnx(1:nfnnx)//'KWt/ids.dt'
* ,STATUS='UNKNOWN')
nline=0
do
998 read(95,'(a)', end=999)line
if(line(1:1).eq.'!')goto 998
jj=0 !count number of words in line
do jjx=1,105 !up to number of character in one line
if(line(jjx:jjx).eq.' '.and.line(jjx+1:jjx+1).ne.' ')jj=jj+1
enddo
c print*,jj,line
if(jj.eq.0)goto 998
nline=nline+1
if(nline.gt.nidtmax)stop'ERROR nidtmax too small'
read(line,* )idtbl(1,nline), idtbl(2,nline),idtbl(3,nline)
. ,idtbl(4,nline),idtbl(5,nline),nametbl(nline),ifl1tbl(nline)
. ,ifl2tbl(nline),ifl3tbl(nline),jspintbl(nline)
. ,amtbl(nline),chrgtbl(nline)
idepos=idtbl(1,nline)
if(idepos.le.6666.and.idepos.ge.1)then
nlidtbl(idepos)=nline
c print*, nlidtbl(idepos),nline,idepos
endif
do i=1,ncode
if(idtbl(i,nline).ne.99)then
nlinex(i)=nlinex(i)+1
nidtmxx(i)=nlinex(i)
endif
enddo
enddo
999 continue
nidtbl=nline
c write(*,*)nidtbl !to check
close(95)
else
write(ifmt,'(a)')'ids.dt: already loaded'
endif
end |
Partager