3.6.1 Vetores

Nesta parte veremos que podemos associar valores à uma variável indexada que chamamos de vetores ou como é conhecido internacionalmente de arrays. Um array pode assumir valores valores inteiros, reais, caracter, etc, como aqueles que estão na seção 3.2.

Um array unidimensional (1D) pode ser escrito como:

$a_i$, sendo $i=1, n \longrightarrow a_1, a_2, a_3, \cdots, a_n$

em que cada variável indexada $a_i$ pode assumir um valor.

Em Fortran o array pode ser utilizado, por exemplo, para se fazer uma conta de centro de massa de uma distribuição de partículas. Supomos que temos 5 partículas e cada partícula possui as coordenadas e massas abaixo:


Tabela 3.5: Coordenadas e massas de 5 partículas.
Partícula x (m) y (m) z (m) massa (kg)                      
1 4.37 1.23 9.55 0.125                      
2 9.27 -1.23 0.51 0.333                      
3 3.35 8.23 6.53 0.975                      
4 7.32 -8.73 4.59 0.229                      
5 1.22 15.12 5.88 0.434                      


Como já aprendemos em Física básica a posição do centro de massa para coordenada pode ser dada de acordo com a equação 3.6.1.

$\displaystyle x_{cm} = \frac{\sum_{i-1}^{n} \left( x_i * m_i \right)}{\sum_{i-1}^{n} m_i}$ (3.6.1)

para as outras coordenadas segue a mesma equação trocando apenas $x$ por $y$ ou $z$.

Em Fortran podemos calcular o centro de massa desse sistema utilizando um conjunto de arrays de uma dimensão. Para a coordenada $x$ atribuímos como na tabela 3.6.


Tabela 3.6: Atribuição dos arrays dentro do Fortran para as coordenadas e massas de 5 partículas.
Partícula x (m) y (m) z (m) massa (kg)                      
1 x(1) = 4.37 y(1) = 1.23 z(1) = 9.55 m(1) = 0.125                      
2 x(2) = 9.27 y(2) = -1.23 z(2) = 0.51 m(2) = 0.333                      
3 x(3) = 3.35 y(3) = 8.23 z(3) = 6.53 m(3) = 0.975                      
4 x(4) = 7.32 y(4) = -8.73 z(4) = 4.59 m(4) = 0.229                      
5 x(5) = 1.22 y(5) = 15.12 z(5) = 5.88 m(5) = 0.434                      


O programa Fortran para calcular o centro de massa é dado como se segue abaixo:

! PROGRAMA PARA CALCULAR O CENTRO DE MASSA
! COMPOSTA POR 5 PARTICULAS
!
! EXEMPLO DA UTILIZACAO DE VARIOS ARRAYS
! UNIDIMENSIONAIS
!
program rcm
implicit none
!
real(kind=4), dimension(5) :: x, y, z, m
real(kind=4) :: xcm, ycm, zcm, mtotal
integer :: i
!
! ZERANDO AS VARIAVEIS PARA EVITAR LIXO DE MEMORIA
xcm = 0
ycm = 0 
zcm = 0
mtotal = 0
!
x(1)=4.37; x(2)=9.27; x(3)=3.35; x(4)=7.23; x(5)=1.22
!
y(1)=1.23; y(2)=-1.23; y(3)= 8.23; y(4)=-8.73; y(5)=15.12
!
z(1)=9.55; z(2)=0.51; z(3)=6.53; z(4)=4.59; z(5)=5.88
!
m(1)=0.125; m(2)=0.333; m(3)=0.975; m(4)=0.229; m(5)=0.434
!
! CALCULA O SOMATORIO CENTRO DE MASSA
do i=1, 5
	xcm = xcm + (x(i) * m(i))
	ycm = ycm + (y(i) * m(i))
	zcm = zcm + (z(i) * m(i))
	mtotal = mtotal + m(i)
end do
!
! POSICOES DO CENTRO DE MASSA
xcm = xcm / mtotal
ycm = ycm / mtotal
zcm = zcm / mtotal
!
! ESCREVE O RESULTADO DA POSICAO DO CENTRO DE MASSA
write(*,*) xcm, ycm, zcm
!
stop
end program rcm
!