Почему сразу надо подозревать в какой-либо нечестности?
Мне слишком мало осталось жить, чтобы я стремился специально поступать нечестно.
Я просто пытаюсь приблизиться к пониманию истины.
Я не стремлюсь делать никому рекламы.
Мой уровень низкий, я с этим не спорю.
В Австралии нет кандидатской диссертации, есть только докторская.
Программу по частям меня просили не выкладывать. Я вынужден набирать текст программы с распечатки, поэтому получается медленно.
Раз Вы настаиваете, привожу еще один фрагмент программы.
Code (additional(2-d part)):
Subroutine readint1(integral1, integral2, integrale, lmax1, nlmax)
Implicit doubleprecision(a-h,o-z)
Include “cin.h”
Common/some/jmin, jmax, nhint /NSO/NSO
Common/nnn/ee(NVM), nnn(NVM), kk(NVM), ll(NVM), jj(NVM), nlist
Common/rint1/rint1(NRI1), rsig(NRI1), rdsig(NRI1), iint1(NRI1)
Common/qqq/qq(NIMAX2), nad(NIMAX2), kat(NKAT2), ngint, katomax
Common/qpar/nvl(NVM), nvlist
Common/qqqe/qe(NIMAX1), qqe(NIMAX1), nade(NIMAX1),
. kate(NKAT1), ngintq, katomq /fk/fk(9), fkk(9)
Common/val/nlistq, nnv(NVM), kapv(NVM) /ns/ns /de/icutq
Dimension nlmax(9)
Real qq, qe, qqe
CHARACTER integral1 *20, integral2 *20, integrale *20
OPEN(UNIT=13, FILE= integral1, STATUS =’old’,
, FORM=’UNFORMATTED’)
Do i=1,9
Nmax(i)=0
End do
Read(13) jmin, jmax, jmax, nlist
Jmin=jmin
Jminq= jmin
NSO= jmin
Ns=nlist
If(nlist.gt.NVM) then
Write(6, 106) nlist, NVM
106 format(‘Too many basis states: nlist=’,i4, ‘while NVM=’, i4)
Stop
End if
Read(13)(nnn(I), kk(I), LL(I), JJ(I), EE(I), I=1, nlist)
Lmax1=0
Do i=1, nlist
Write(6,6)i, nnn(i), kk(i), ll(i), jj(i), ee(i)
C Write(10,6)i, nnn(i), kk(i), ll(i), jj(i), ee(i)
6 format(i4,’)n=,i2, ‘kap=’,i2,’l=’,i2, ‘j=’,i2,’/2en’,
, f12.6)
If(i.eq.nso) write(6,7)
C If(i.eq.nso) write(10,7)
7 format(‘______________’)
If(kk(i).lt.0.and.i.gt.jmin) then
Nlmax(ll(i)+1)= Nlmax(ll(i)+1)+1
Lmax1=max0(lmax1,ll(i))
End if
End do
Print 5, lmax1, (nlmax(l), l=1, lmax1+1)
5 format(/’Number of basis functions for l=0 to’,i3,’:’/
/ 10i4)
Read(13) NHINT, NLIST11
If(nhint.gt.NRI1) then
Write(6, 107) nhint, NRT1
107 format(‘Too many integrals: nhint=’, i6, ‘’,i6)
Stop
End if
Read(13)(RINT1(I), I=1,NHINT)
Read(13)(IINT1(I), I=1,NHINT)
Read(13)(RSIG(I), I=1,NHINT)
Read(13)(RDSIG(I), I=1,NHINT)
Close(13)
*****************************
OPEN(UNIT=13, FILE=integral2, STATUS=’old’,
, FORM=’UNFORMATTED’)
Read(13) jmin, nlist, ngint, katom
If(ngint.gt.NIMAX2.or.katom.gt.NKAT2) then
Print 110, ngint, NIMAX2, katom, NKAT2
110 format(‘Too much date to read:’,/’ngint=’,i7,
, ‘NIMAX2=’,i7, ‘katom=’,i6, ‘NKAT2=’,i6)
Stop
End if
Read(13)
Print *, ngint, NIMAX2, katom, NKAT2
Read(13)(kat(i), i=1,katom)
Read(13)(nad(i), i=1,ngint)
Read(13)(qq(i), i=1, ngint)
Close(13)
*****************************
If(icut.eq.0) then
Nvl=0
Nvlist=0
Fkk=1.
Else
OPEN(UNIT=13, FILE=integrale, STATUS=’old’,
, FORM=’UNFORMATTED’)
Read(13)nlistq,ngintq,katomq
Read(13)(nnv(i), kapv(i), i=1, nlistq)
Read(13)(qqe(i), i=1, ngintq)
Read(13)(nade(i), i=1, ngintq)
Read(13)(kate(i), i=1, katomq)
Read(13)(fkk(i), i=1, 9)
Close(13)
Nvlist=nlistq
C print *, ‘nlistq=’, nlistq
C print 117,(nnv(i), kapv(i), i=1, nlistq)
C 117 format(‘nnv=’,i4,’kapv=’,i4)
Do in=jmin+1, nlist
Do iv=1, nlistq
If(kk(in).eq.kapv(iv).and.nnn(in).eq.nnv(iv))nvl(iv)=in
End do
End do
Print 17, (fkk(i), i=1,9)
17 format(‘fk:’,5f10.5)
Return
901 stop
end
в файле cin.h видимо заданы максимальные границы изменения ряда параметров компьютерной программы, таких например, как максимальный размер матрицы (NXX) для диагонализации методом Давидсона.
|