source: trunk/pgm03/infor.f @ 1

Last change on this file since 1 was 1, checked in by cbipsl, 18 years ago

Geisa inital import

File size: 8.7 KB
Line 
1C     SORTIE DE CERTAINS RENSEIGNEMENTS SUR LA
2C     SPECTROSCOPIC DATA BANK
3C       
4C     SANS AUCUN PARAMETRE SORTIE DES FREQUENCES MOLECULES ET DU CODAGE
5C     DE LA VERSION LA PLUS RECENTE
6C     LISTE='CTLG' IMPRESSION DU CATALOGUE DE LA BANQUE(ENTRE NU1-NU2)
7C     SI NU1 ET NU2 OMIS TOUT LE CATALOGUE
8C     LISTE='OPT' LISTE DES OPTIONS DISPONIBLES
9C       
10C     ANAL='OUI' SORTIE DES FREQUENCES MOLECULES-ISOTOPES (SANS LECTURE
11C                DE LA BANQUE)
12C       
13C     TRANS='OUI' SORTIE DES TRANSITIONS (SANS LECTURE DE LA BANQUE)
14C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
15C       
16C LAST MODIF : 06.05.1991 PASSAGE DE 40 MOLECULES A 75 DANS LES COMMON
17C LAST MODIF : 04.12.1996 PASSAGE DE 42 MOLECULES A 75 DANS LES COMMON
18C       
19C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
20      subroutine infor(pp,ia)
21C       
22      logical*1 pp(1)
23      character*44  fmt
24      character*9   trs1,trs2
25      character*7   form,bin
26      character*4   code,ctlg,mole,blanc,coli6
27      character*3   pgm,ianl,iext,itrs,ilst,icop,info,icre,
28     &              oui,iopt,liste,iasr,remp,supp,ajou,modif,trans
29      character*2   icod,ikod
30      character*1   moins,slash,bl,ch5,ch6
31      integer ia(1),vers,nbtr(75)
32      real nu1,nu2,vnu(4)
33C       
34      common/p1/ nu1,nu2,dnu,nbclas,khist,kanal,vers,mode,liste
35      common/p2/ mole(75),isot(100),nbi(75),nbt(75),iopt,ctlg,trans,
36     &           trs1,trs2
37      common/p3/ imole,iran,ival,pgm,ianl,iext,itrs,ilst,icop,info,icre
38      common/p4/ nmol,knmol,ksot,kksot,ntab,nhist,kp,lre,form,bin,modif
39      common/p5/ code(75),nn(150),nq(150),ikod(18),icod(18),jdeb(75)
40      common/p6/ iasr,remp,supp,ajou,imp8,imp9,in40,in41,in42,in43,n97
41      common/entsor/iuni,juni,kuni,ient,isor,iper,nresv,maxx,blanc,oui
42C       
43      data vnu/0.   ,0.   ,0.   ,0.        /
44      data moins,slash,bl/'-','/',' '/
45C     DATA NBTR91
46C    & / 49296, 60948,168881, 24125, 13205, 40514,  2254,  7385, 23659,
47C    &   55468,  6784,  4635,143021,  8676,   107,   371,   398,   237,
48C    &    6020,  4171,  2702,  8944,  6457,  1258,   203,   824,  2575,
49C    &    9019,  2577,  1405,  2027, 15565,   117,  6687,  5444,  4058,
50C    &    3388, 18242, 11520,  3390,   35*0/
51      data nbtr /75*0/
52c    & / 50217, 62816,281607, 26771, 13515, 66883,  6292, 94738, 38853,
53c    &  100680, 11152,  4635,171504, 41786,   107,   533,   576,   237,
54c    &    7230, 24922,  2702, 14981, 11524,  1668, 12978,   824,  2575,
55c    &    9019,  2577,  1405,  2027, 15565,   117,  9355,100781, 20788,
56c    &    3388, 54866, 11520,  3390, 26963, 32199, 33*0/
57      data fmt/'(27x,a4,a1,a1,i10,7x,a1,   (i3,a1),   x,i6)'/
58      include 'geisafile.h'
59c     ivers=(vers-97)*40
60c     jvers=(vers-97)*2
61      ivers=0
62      jvers=0
63      len=ltrim(filename_bin)
64      open(111,file=filename_bin(1:len)//'.info')
65         do ijk=1,15
66            read(111,*)
67         enddo
68         read(111,'(31x,f09.3,6x,f10.3,14x,i7)') 
69     &        vnu(1),vnu(2),nblinestot
70         do i=1,nmol
71            read(111,*)
72            read(111,*)
73            read(111,1003) rmoyi,rmaxi,alphamoy,nbtr(i)
74         enddo
751003  format(2x,1pd9.3,1x,1pd9.3,1x,1pe9.3,1x,i7)
76      close(111)
77      if(liste.eq.iopt) go to 50
78      if(liste.eq.ctlg) go to 40
79C       
80C     IMPRESSIONS DES FREQUENCES MOLECULES DE LA BANQUE VERSION VERS
81C       
82      write(isor,3000)  vers,pgm,pgm
833000  format(1x,17('*'),98x,17('*')/1x,'* geisa   geisa *',
84     &36x,'spectroscopic data bank GEISA',i2.2,31x,
85     &'* geisa   geisa *'/' *',6x,a3,6x,'*',98x,'*',6x,a3,6x,'*'/
86     &' * geisa   geisa *',98x,'* geisa   geisa *'/,
87     &1x,17('*'),98x,17('*'))
88      liste=iopt
89      write(isor,3010)
903010  format        (/27x,'molecules   code  ',7x,'isotopes',
91     &25x,'number of transitions'/
92     &27x,'---------   ----  ',7x,8('-'),25x,'------ -- -----------'/)
93      kt=0
94      do 35 i=1,nmol
95      nbtri=nbtr(ivers+i)
96      kt=kt+nbtri
97      kk=jdeb(i)
98      ki=kk+1
99      kf=kk+nn(kk)
100      jj=0
101      do 33 j=ki,kf
102      if(.not.pp(nn(j)))go to 33
103      jj=jj+1
104      ia(jj)=nn(j)
10533    continue
106      j1=jj-1
107      fmt(26:27)=icod(jj)
108      icoli6=42-4*jj+1
109      write(coli6,'(i4.4)')icoli6
110      fmt(37:38)=coli6(3:4)
111C       
112C     AJOUT DU 5EME et (6eme) CARACTERE DES MOLECULES  CH3CL,HCOOH, CLONO2
113      ch5=bl
114      ch6=bl
115      if(i.eq.34) ch5='l'
116      if(i.eq.37) ch5='h'
117      if(i.eq.42) ch5='o'
118      if(i.eq.42) ch6='2'
119C************RAJOUT DE ,nbtri A LA FIN DE CHAQUE TEST************
120      if(jj.ne.1)
121     &write(isor,fmt)code(i),ch5,ch6,i,slash,(ia(j),moins,j=1,j1),
122     &ia(jj),slash,nbtri
123      if(jj.eq.1) write(isor,fmt) code(i),ch5,ch6,i,slash,ia(jj),slash
124     &,nbtri
12535    continue
126      write(isor,3030) kt,kt,vnu(jvers+1),vnu(jvers+2)
1273030  format(94x,'------'/86x,'total=',i8//27x,'the bank contains    ',
128     &i8,' lines in the spectral range',
129     &2x,'nu1=',f10.4,' and nu2=',f10.4)
130      if(liste.eq.oui) write(isor,4000)
1314000  format(//40x,'(a)  wavenumber (cm-1)'/
132     &40x,'(b)  intensity (cm molec-1 at 296 k)'/
133     &40x,'(c)  collision halfwidth (cm-1 atm-1)'/
134     &40x,'(d)  energy of the lower level of the transition (cm-1)'/
135     &40x,'(e)  identification of the transition'/
136     &40x,'(f)  coefficient for temperature dependence of halfwidth'/
137     &40x,'(g)  identification of the isotope'/
138     &40x,'(h)  identification of the molecule'/
139     &40x,'(i)  geisa internal code for data identification'/)
140      go to 100
14140    continue
142C       
143C     LISTE CATALOGUE
144      call pgeisa(0.,99999.)
145      read (iuni,rec=1)
146     &aa1,aa2,anu,n203,nbraie,nbmol,iecr,ifin,ll1,ll2,ll3,ll4
147      vers=ll3
148      write(isor,3000) vers,pgm,pgm
149      ipp=ifin-1
150      if(nu1.eq.-1.) nu1=aa1
151      if(nu2.eq.-1.) nu2=aa2
152      write(isor,4100) nbraie,aa1,aa2,ipp,anu,n203,vers,nu1,nu2
1534100  format(//1x,'the bank contains',i8,' raies comprises entre nu1
154     &=',f12.3,' et nu2=',f10.3//' le nombre de records reellement occup
155     &ees est de : ',i4,' records'//  ' les transitions figurent dans la
156     & banque par groupes de ',f4.0,' cm-1 dans un format chaine'
157     &//' chaque record comprend au maximum ',i4,' raies'// 
158     &/1x,          'liste du catalogue d
159     &e GEISA',i2.2,3x,'pour les blocks tels que : ',f10.3,' < nu < ',
160     &f10.3/1x,29('*')//1x,23x,'block lu',22x,5x,3x,'block precedent',
161     &    3x,5x,4x,'block suivant',4x/24x,8('*'),30x,15('*'),12x,13('*')
162     &//' numero  nombre de raies  premiere raie  derniere raie     nume
163     &ro  derniere raie     numero  premiere raie     ligne   total/grou
164     &pe'/1x,                                                    '------
165     &  ------ -- -----  -------- ----  -------- ----     ------  ------
166     &-- ----     ------  -------- ----     -----   ------------')
167      write(isor,4101) nbmol
1684101  format(' cette banque contient : ',i2,' molecules'/)
169      kk=0
170      kkk=0
171      iecr1=int(aa2/anu) + 2 - int(aa1/anu)
172      i=0
173      iadr=int(nu1/anu) + 2 - int(aa1/anu)
17445    continue
175      i=i+1
176      ilec=iadr
177      read (iuni,rec=ilec) iadr,jadr,k,a1,a2,a3,v1
178C       
179C GEISA90 : 16 -> 29
180C       
181      k=k/29
182      write(isor,4200) ilec,k,v1,a3,jadr,a2,iadr,a1,i
1834200  format(1x,i5,8x,i3,8x,f12.6,3x,f12.6,6x,i5,3x,f12.6,6x,i5,3x,f12.6
184     &,6x,i4)
185      kk=kk+k
186      kkk=kkk+k
187      if(iadr.gt.iecr1) go to 49
188      write(isor,4201) kk
1894201  format(116x,3x,i9)
190      kk=0
19149    continue
192      if(nu2.gt.a1) go to 45
193      write(isor,4201) kk
194      write(isor,4202) kkk
1954202  format(1x,115x,6x,'------'/1x,113x,'total : ',i6)
196      return
19750    continue
198C       
199C     LISTE DES OPTIONS
200      write(isor,3000) vers,pgm,pgm
201      write(isor,5000)
2025000  format(//51x,'list of available options in GEISA software  ',
203     &//26x,82('*'))
204      write(isor,5005)
2055005  format(26x,'* &geisa pgm=''anl'',nu1,nu2,dnu,mole,anal /     '
206     &,34x,'*'/
207     &26x,'* &geisa pgm=''anl'',nu1,nu2,dnu,mole,isot,histo,nbclas /
208     &    ',18x,'*'/26x,'*',80x,'*')
209      write(isor,5010)
2105010  format(26x,'* &geisa pgm=''cop'',nu1,nu2 /',53x,'*'
211     &/26x,'*',80x,'*')
212      write(isor,5015)
2135015  format(26x,'* &geisa pgm=''cre'',format,juni /',49x,
214     &'*'/26x,'*',80x,'*')
215      write(isor,5020)
2165020  format(26x,'* &geisa pgm=''ext'',nu1,nu2,mole,isot,liste,format,ju
217     &ni /    ',21x,'*'/26x,'*',80x,'*')
218      write(isor,5025)
2195025  format(26x,'* &geisa pgm=''inf'' /',61x,'*')
220      write(isor,5026)
2215026  format(26x,'* &geisa pgm=''inf'',liste=''opt'' /     ',44x,'*')
222      write(isor,5030)
2235030  format(26x,'* &geisa pgm=''lst'',nu1,nu2,mole,isot,liste,format,ju
224     &ni,iuni /     ',15x,'*'/26x,'*',80x,'*')
225      write(isor,5035)
2265035  format(26x,'* &geisa pgm=''trs'',nu1,nu2,mole,iuni /',43x,'*')
227      write(isor,5050)
2285050  format(26x,82('*'))
229      liste='   '
230100   continue
231      return
232      end
Note: See TracBrowser for help on using the repository browser.