
- •1.2. Земний магнетизм…………………………………………………....7
- •Розділ 1 гравітаційне поле землі
- •1.1. Гравітаційне поле Землі
- •1.2. Земний магнетизм
- •1.3. Сила тяжіння
- •1.4. Гравіметрія
- •1.5. Гравіметр
- •1.6. Гравіметрична розвідка
- •1.7. Застосування гравіметричної розвідки
- •1.8. Геофізична розвідка
- •1.9. Магнітометрія
- •1.10. Електророзвідка
- •1.11. Сейсмометрія
- •Порушення пружних хвиль
- •1.12. Системи спостережень сейсморозвідки
- •1.13. Методи сейсморозвідки
- •Розділ 2 теоретичні основи аномалій деталізації гравітаційного поля
- •2.1. Моделювання геологічних структур. Сітковий метод
- •2.2. Локалізація гравітаційного поля
- •2.3. Методи локалізації та трасування вимірюваного гравітаційного поля
- •2.4. Розв’язок задачі за допомогою мов програмування
- •2.4.1. Робочі елементи програми.
- •2.4.2. Робоча підпрограма
- •Розділ 3 результати деталізації та трасування вимірюваного гравітаційного поля
- •Додатки
2.4.2. Робоча підпрограма
Для реалізації поставленої задачі була написана програми мовою Fortran.
Підключення бібліотек
program totogravmagn
use msflib
intrinsic dsin,dcos,dabs,dsqrt,dlog,datan
Оголошення змінних та точність
real(8),allocatable:: cappa(:,:,:),cappa1(:,:,:)
CHARACTER(10)dat,tim,zon
Задаються координати поля
write(*,*) 'Vvedite a,n'
read (*,*)a,n
write(*,*) 'a=',a,' n=',n
Задається параметри моделі для гравітаційного поля
nx=24; ny=24; nx7=47; ny7=47
zz11=0.07; aax = 0.46; aay=0.46
zz441=1.070+0.;zz46=-2.0; zz447=0.57+0.; zz44a=1.57+0.
bbxd=0.40;bbyd=0.20*0
Обчислюються за формулами – похідними функціями гравітаційного поля
Запис і зчитування даних
24 format((2f8.0,f16.12))
open(602,file='d:\work\temp\testgo602.dat',status='unknown',form='formatted')
read(12,*) ZecsigT
rewind 12
print '(1x,i3,1X,2f9.0,f9.4)',((j,(ZecsigT(i,j,k),i=1,3),j=1,261,3),k=1,1)
close(12)
Гравітаційне поле на інтервалах розв’язку
open(602,file='d:\work\temp\testgo602.dat',status='unknown',form='formatted')
write(602,33) gtolerg
rewind 602
read(602,33) gtole
rewind 602
print '(1x,10f7.2)',gtole
close(602)
Задаємо початкові умови для розв’язку оберненої задачі гравітаційного поля 1шару
Розв’язок гравітаційного поля для 1-го шару
print*, ' 1- sloy '
open(602,file='d:\work\temp\testgo602.dat',status='unknown',access='sequential',form='formatted')
read(602,46) sv
rewind 602
close(602)
Задаємо початкові умови для розв’язку оберненої задачі гравітаційного поля 1шару
Розв’язок гравітаційного поля для 2-го шару
print*, ' 2- sloy '
open(716,file='d:\work\temp\testgo716.dat',status='unknown',access='sequential',form='formatted')
read(716,22) sv
rewind 716
close(716)
Початок розв’язування задачі
do i=2,46
do j=2,46
gtole(i,j)=(gtolerg(i-1,j-1)+gtolerg(i,j)+gtolerg(i+1,j+1))/3
end do;end do
Оголошення динамічної пам’яті
allocate( cappa(nx7,ny7,m),cappa1(nx7,ny7,m) )
do j16=1,2
do i9=1,m
carra(i9)=0.0
do i4=1,nx7
do j4=1,ny7
cappa(i4,j4,i9)=xyzz(i4,j4,i9)*ffonty(i4,j4)/lambda(i4,j4)
carra(i9)=carra(i9)+xyzz(i4,j4,i9)*ffonty(i4,j4)
if (j16==2) then
cappa1(i4,j4,i9)=xyzz(i4,j4,i9)*ffonty1(i4,j4)/lambda(i4,j4)
END IF
enddo; end do; end do
Закриття динамічної пам’яті
deallocate(cappa,cappa1)
goto 1006
ajo=0.0
ajo1=0.0
bjo=0.0
bjo1=0.0
bjo2=0.0
bbb11=0.0
ccc11=0.0
do i12=1,m
ajo=ajo+bbb(i12)*acappa(i12)
bjo=bjo+acappa(i12)*acappa(i12)
bjo2=bjo2+acappa(i12)*acappa1(i12)
End do
do i120=1,m
ajo1=ajo1+bbb(i120)*acappa1(i120)
bjo1=bjo1+acappa1(i120)*acappa1(i120)
end do
Обчислення намагніченості
do j3=1,m
xypi=xypi+xyzz(i,j20,j3)*Vecsig(j3) !{vybrannoe pole}
end do
Запис результатів обчислення
open(602,file='d:\work\temp\testgo602.dat',status='unknown',form='formatted')
close (602)
Формули функцій для обчислення коефіцієнтів зв’язку теоретичного та вимірюваного гравітаційного поля
CONTAINS
function gg (x1,x2,y1,y2,z1,z2,x0,y0);
real(8)::gg
real(8):: xsq111,xsq211,xsq121,xsq221,xsq112,xsq212,xsq122, &
xsq222,ysq111,ysq211,ysq121,x1,x2,y1,y2,z1,z2,x0,y0
real(8):: ysq221,ysq112,ysq212,ysq122,ysq222,t1a,t2a,ty2ln, &
ty1ln,ttx2ln,ttx1ln
XSQ111=x1-x0+dsqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+z1*z1)
XSQ211=x2-x0+dsqrt((x2-x0)*(x2-x0)+(y1-y0)*(y1-y0)+z1*z1)
XSQ121=x1-x0+dsqrt((x1-x0)*(x1-x0)+(y2-y0)*(y2-y0)+z1*z1)
XSQ221=x2-x0+dsqrt((x2-x0)*(x2-x0)+(y2-y0)*(y2-y0)+z1*z1)
XSQ112=x1-x0+dsqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+z2*z2)
XSQ212=x2-x0+dsqrt((x2-x0)*(x2-x0)+(y1-y0)*(y1-y0)+z2*z2)
XSQ122=x1-x0+dsqrt((x1-x0)*(x1-x0)+(y2-y0)*(y2-y0)+z2*z2)
XSQ222=x2-x0+dsqrt((x2-x0)*(x2-x0)+(y2-y0)*(y2-y0)+z2*z2)
YSQ111=y1-y0+dsqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+z1*z1)
YSQ121=y2-y0+dsqrt((x1-x0)*(x1-x0)+(y2-y0)*(y2-y0)+z1*z1)
YSQ211=y1-y0+dsqrt((x2-x0)*(x2-x0)+(y1-y0)*(y1-y0)+z1*z1)
YSQ221=y2-y0+dsqrt((x2-x0)*(x2-x0)+(y2-y0)*(y2-y0)+z1*z1)
YSQ112=y1-y0+dsqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+z2*z2)
YSQ122=y2-y0+dsqrt((x1-x0)*(x1-x0)+(y2-y0)*(y2-y0)+z2*z2)
YSQ212=y1-y0+dsqrt((x2-x0)*(x2-x0)+(y1-y0)*(y1-y0)+z2*z2)
YSQ222=y2-y0+dsqrt((x2-x0)*(x2-x0)+(y2-y0)*(y2-y0)+z2*z2)