<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://fiscomp.if.ufrgs.br/index.php?action=history&amp;feed=atom&amp;title=Simula%C3%A7%C3%A3o_-_Lennard-Jones</id>
	<title>Simulação - Lennard-Jones - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="http://fiscomp.if.ufrgs.br/index.php?action=history&amp;feed=atom&amp;title=Simula%C3%A7%C3%A3o_-_Lennard-Jones"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;action=history"/>
	<updated>2026-04-09T03:50:23Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;diff=9710&amp;oldid=prev</id>
		<title>Gustavobopsin em 18h53min de 21 de abril de 2023</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;diff=9710&amp;oldid=prev"/>
		<updated>2023-04-21T18:53:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Edição das 15h53min de 21 de abril de 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Linha 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        CALL CPU_time(t_inicial)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        CALL CPU_time(t_inicial)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!--------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!--------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!    Semente para números aleatórios&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!    Semente para números aleatórios&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        semente = 1234&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        semente = 1234&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        DO q=0,7&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        DO q=0,7&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gustavobopsin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;diff=9709&amp;oldid=prev</id>
		<title>Gustavobopsin em 18h53min de 21 de abril de 2023</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;diff=9709&amp;oldid=prev"/>
		<updated>2023-04-21T18:53:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Edição das 15h53min de 21 de abril de 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!--------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;!--------------------------------------------------------------------&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        MODULE globais&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        MODULE globais&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        IMPLICIT NONE&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        IMPLICIT NONE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gustavobopsin</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;diff=9696&amp;oldid=prev</id>
		<title>Gustavobopsin: Criou página com '!--------------------------------------------------------------------        MODULE globais        IMPLICIT NONE        INTEGER :: Lx,Ly,N,Nf,nhis        REAL(8) :: pi,eps,sig...'</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Simula%C3%A7%C3%A3o_-_Lennard-Jones&amp;diff=9696&amp;oldid=prev"/>
		<updated>2023-04-19T00:45:44Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;!--------------------------------------------------------------------        MODULE globais        IMPLICIT NONE        INTEGER :: Lx,Ly,N,Nf,nhis        REAL(8) :: pi,eps,sig...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;!--------------------------------------------------------------------&lt;br /&gt;
       MODULE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: Lx,Ly,N,Nf,nhis&lt;br /&gt;
       REAL(8) :: pi,eps,sigma,sigma2,rho&lt;br /&gt;
       END MODULE &lt;br /&gt;
!--------------------------------------------------------------------       &lt;br /&gt;
       PROGRAM lennard_jones&lt;br /&gt;
       USE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: i,t,k,j,m,ngr&lt;br /&gt;
       INTEGER :: q,semente,seed(8)&lt;br /&gt;
       INTEGER,ALLOCATABLE :: hist_g(:)&lt;br /&gt;
       REAL(4) :: t_inicial,t_final,tempo&lt;br /&gt;
       REAL(8) :: d,r,dt,tmax,p,delg,u&lt;br /&gt;
       REAL(8),ALLOCATABLE :: x(:),y(:),Vx(:),Vy(:),Fx(:),Fy(:),dist(:),g(:)&lt;br /&gt;
       REAL(8) :: e_cin,e_pot,Temp,pressao,sum_Temp,sum_pressao&lt;br /&gt;
!&lt;br /&gt;
       CALL CPU_time(t_inicial)&lt;br /&gt;
!--------------------------------------------------------------------&lt;br /&gt;
!    Semente para números aleatórios&lt;br /&gt;
       semente = 1234&lt;br /&gt;
       DO q=0,7&lt;br /&gt;
           seed(q+1) = semente + q*50 &lt;br /&gt;
       END DO&lt;br /&gt;
       CALL random_seed(put = seed)&lt;br /&gt;
!--------------------------------------------------------------------&lt;br /&gt;
       pi = 4.0*atan(1.0)&lt;br /&gt;
       Lx = 25&lt;br /&gt;
       Ly = 25&lt;br /&gt;
       N = 144                    !Número de partículas!&lt;br /&gt;
       Nf = 2*N-2                 !Nuúmero de graus de liberdade!&lt;br /&gt;
       nhis = 200                 !Número de bins!&lt;br /&gt;
       d = 2.0                    !Distância entre as partículas!&lt;br /&gt;
       r = d*0.5                  !Raio das partículas!      &lt;br /&gt;
       eps = 1.0&lt;br /&gt;
       sigma = 1.0&lt;br /&gt;
       sigma2 = sigma*sigma&lt;br /&gt;
       rho = 1.0*N/(Lx*Ly)   !Densidade numérica!&lt;br /&gt;
       Temp = 1.0                 !Temperatura desejada, usada para!&lt;br /&gt;
                                  !reescalar as velocidades!      &lt;br /&gt;
!--------------------------------------------------------------------&lt;br /&gt;
!    Aloca os vetores&lt;br /&gt;
       ALLOCATE(x(N),y(N),Vx(N),Vy(N),Fx(N),Fy(N))&lt;br /&gt;
       ALLOCATE(g(nhis),dist(nhis),hist_g(nhis))&lt;br /&gt;
!--------------------------------------------------------------------&lt;br /&gt;
!    Zera variáveis&lt;br /&gt;
       Fx(:) = 0.0&lt;br /&gt;
       Fy(:) = 0.0&lt;br /&gt;
       x(:) = 0.0&lt;br /&gt;
       y(:) = 0.0&lt;br /&gt;
       Vx(:) = 0.0&lt;br /&gt;
       Vy(:) = 0.0&lt;br /&gt;
       g(:) = 0.0&lt;br /&gt;
       hist_g(:) = 0&lt;br /&gt;
       dist(:) = 0.0&lt;br /&gt;
       sum_Temp = 0.0&lt;br /&gt;
       sum_pressao = 0.0&lt;br /&gt;
!--------------------------------------------------------------------&lt;br /&gt;
!    Inicializa posições, velocidades, forças e fdr&lt;br /&gt;
       CALL inicializacao(x,y,Vx,Vy,r,Temp,e_cin)&lt;br /&gt;
       CALL posicoes(x,y,r)&lt;br /&gt;
       CALL forcas(x,y,Fx,Fy,e_pot,p)&lt;br /&gt;
       CALL fdr(0,x,y,ngr,delg,dist,g)&lt;br /&gt;
!--------------------------------------------------------------------&lt;br /&gt;
!    Loop para integrar as equações de movimento&lt;br /&gt;
       dt = 0.01&lt;br /&gt;
       tmax = 100.0/dt&lt;br /&gt;
       OPEN(10,FILE='dados_particulas.dat',ACTION='write',STATUS='unknown')&lt;br /&gt;
       OPEN(100,FILE='dados_termo.dat',ACTION='write',STATUS='unknown')&lt;br /&gt;
       OPEN(200,FILE='dados_fdr.dat',ACTION='write',STATUS='unknown')&lt;br /&gt;
       DO t=0,int(tmax)&lt;br /&gt;
           Temp = e_cin/Nf&lt;br /&gt;
           pressao = rho*Temp + 0.5/(Lx*Ly)*p&lt;br /&gt;
!        Retira o valor inicial da T e p do cálculo da média, pois é muito diferente   &lt;br /&gt;
           IF (t == 0) THEN&lt;br /&gt;
                sum_Temp = -Temp&lt;br /&gt;
                sum_pressao = -pressao&lt;br /&gt;
                GO TO 20&lt;br /&gt;
           ELSE&lt;br /&gt;
                GO TO 20&lt;br /&gt;
           END IF&lt;br /&gt;
20         sum_Temp = sum_Temp + Temp&lt;br /&gt;
           sum_pressao = sum_pressao + pressao&lt;br /&gt;
!       Escreve os dados nos arquivos&lt;br /&gt;
           DO i=1,N&lt;br /&gt;
               WRITE(10,200) t,i,x(i),y(i),Vx(i),Vy(i),Fx(i),Fy(i)&lt;br /&gt;
           END DO&lt;br /&gt;
           WRITE(10,*) ''&lt;br /&gt;
           WRITE(10,*) ''&lt;br /&gt;
200        FORMAT(i5,2x,i3,2x,f10.5,2x,f10.5,2x,f10.5,2x,f10.5,2x,f10.5,2x,f10.5)&lt;br /&gt;
           WRITE(100,300) t,e_cin,e_pot,Temp,pressao&lt;br /&gt;
300        FORMAT(i5,2x,f10.5,2x,f10.5,2x,f10.5,2x,f10.5)&lt;br /&gt;
!       Algoritmo Velocity-Verlet&lt;br /&gt;
           DO k=1,10 &lt;br /&gt;
               CALL verlet(x,y,Vx,Vy,Fx,Fy,dt,e_cin,e_pot,p)&lt;br /&gt;
           END DO&lt;br /&gt;
           CALL fdr(1,x,y,ngr,delg,dist,g)&lt;br /&gt;
       END DO &lt;br /&gt;
       CALL fdr(2,x,y,ngr,delg,dist,g)&lt;br /&gt;
!    Imprime a fdr&lt;br /&gt;
       DO m=1,nhis&lt;br /&gt;
           WRITE(200,400) dist(m),g(m) &lt;br /&gt;
       END DO&lt;br /&gt;
400    FORMAT(f10.5,2x,f10.5)&lt;br /&gt;
       CLOSE(10) &lt;br /&gt;
       CLOSE(100)&lt;br /&gt;
       CLOSE(200)&lt;br /&gt;
!    Calcula a temperatura média e a pressão média&lt;br /&gt;
       sum_Temp = sum_Temp/tmax&lt;br /&gt;
       sum_pressao = sum_pressao/tmax&lt;br /&gt;
       WRITE(*,600) 'Densidade:',rho&lt;br /&gt;
       WRITE(*,700) 'Temperatura média:',sum_Temp&lt;br /&gt;
       WRITE(*,800) 'Pressão média:',sum_pressao&lt;br /&gt;
600    FORMAT(a11,1x,f7.4)&lt;br /&gt;
700    FORMAT(a19,1x,f7.4)&lt;br /&gt;
800    FORMAT(a16,1x,f7.4)&lt;br /&gt;
!&lt;br /&gt;
       CALL CPU_time(t_final)&lt;br /&gt;
       tempo = t_final - t_inicial&lt;br /&gt;
       WRITE(*,900) 'Tempo de execução:',tempo,'s'&lt;br /&gt;
900    FORMAT(a20,1x,f6.2,1x,a1)&lt;br /&gt;
! &lt;br /&gt;
       END PROGRAM&lt;br /&gt;
!---------------------------------------------------------------------&lt;br /&gt;
!    Inicialização&lt;br /&gt;
       SUBROUTINE inicializacao(rx,ry,vx,vy,r,Temp,e_cin)&lt;br /&gt;
       USE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: num,i &lt;br /&gt;
       REAL(8) :: d,r,x,y,Temp,e_cin,rand1,rand2&lt;br /&gt;
       REAL(8) :: sumv2,sum_vx,sum_vy,fs&lt;br /&gt;
       REAL(8) :: rx(N),ry(N),vx(N),vy(N)&lt;br /&gt;
!    Inicializa as posições&lt;br /&gt;
       num = 1&lt;br /&gt;
       x = r&lt;br /&gt;
       y = r&lt;br /&gt;
       DO WHILE (y .lt. Ly-r+0.05)&lt;br /&gt;
           DO WHILE (x .lt. Lx-r+0.05)&lt;br /&gt;
               IF (num .le. N) THEN&lt;br /&gt;
                   rx(num) = x&lt;br /&gt;
                   ry(num) = y&lt;br /&gt;
                   num = num + 1&lt;br /&gt;
               END IF&lt;br /&gt;
               x = x + 2*r&lt;br /&gt;
           END DO&lt;br /&gt;
           x = r&lt;br /&gt;
           y = y + 2*r&lt;br /&gt;
       END DO&lt;br /&gt;
!    Inicializa as velocidades&lt;br /&gt;
       sumv2 = 0.0&lt;br /&gt;
       sum_vx = 0.0  ; sum_vy = 0.0&lt;br /&gt;
       DO i=1,N&lt;br /&gt;
           CALL random_number(rand1)&lt;br /&gt;
           CALL random_number(rand2)&lt;br /&gt;
           vx(i) = rand1 - 0.5&lt;br /&gt;
           vy(i) = rand2 - 0.5&lt;br /&gt;
           sumv2 = sumv2 + vx(i)*vx(i) + vy(i)*vy(i)    !energia cinética!&lt;br /&gt;
           sum_vx = sum_vx + vx(i)                      !veloc x do CM!&lt;br /&gt;
           sum_vy = sum_vy + vy(i)                      !veloc y do CM!&lt;br /&gt;
       END DO&lt;br /&gt;
       e_cin = 0.5*sumv2&lt;br /&gt;
       sumv2 = sumv2/N&lt;br /&gt;
       fs = sqrt(2.0*Temp/sumv2)           !Reescala as velocidades!&lt;br /&gt;
       sum_vx = sum_vx/N                   !veloc x do CM!&lt;br /&gt;
       sum_vy = sum_vy/N                   !veloc y do CM!&lt;br /&gt;
       DO i=1,N&lt;br /&gt;
           vx(i) = (vx(i) - sum_vx)*fs&lt;br /&gt;
           vy(i) = (vy(i) - sum_vy)*fs&lt;br /&gt;
       END DO&lt;br /&gt;
       END SUBROUTINE&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!    Implime a configuração inicial do sistema&lt;br /&gt;
       SUBROUTINE posicoes(x,y,r)&lt;br /&gt;
       USE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: k&lt;br /&gt;
       REAL(8) :: r&lt;br /&gt;
       REAL(8) :: x(N),y(N)&lt;br /&gt;
       OPEN(9,FILE='posicoes.dat',ACTION='write',STATUS='unknown')&lt;br /&gt;
       DO k=1,N&lt;br /&gt;
           WRITE(9,*) x(k),y(k),r&lt;br /&gt;
           END DO&lt;br /&gt;
           CLOSE(9)&lt;br /&gt;
       END SUBROUTINE&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!    Calcula as forças em um instante de tempo&lt;br /&gt;
       SUBROUTINE forcas(x,y,fx,fy,e_pot,p)&lt;br /&gt;
       USE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: i,j&lt;br /&gt;
       REAL(8) :: a,r2,dx,dy,e_pot,p&lt;br /&gt;
       REAL(8) :: x(N),y(N),fx(N),fy(N)&lt;br /&gt;
       fx(:) = 0.0&lt;br /&gt;
       fy(:) = 0.0&lt;br /&gt;
       e_pot = 0.0&lt;br /&gt;
       p = 0.0&lt;br /&gt;
       DO i=1,N-1&lt;br /&gt;
           DO j=i+1,N&lt;br /&gt;
!            Convenção da imagem mínima&lt;br /&gt;
               dx = x(i)-x(j)&lt;br /&gt;
               dy = y(i)-y(j)&lt;br /&gt;
               dx = dx - Lx*nint(dx/Lx)&lt;br /&gt;
               dy = dy - Ly*nint(dy/Ly)&lt;br /&gt;
               r2 = dx*dx + dy*dy&lt;br /&gt;
               a = 48*eps/sigma2*(sigma2/r2)**4*((sigma2/r2)**3 - 0.5)&lt;br /&gt;
               fx(i) = fx(i) + a*dx&lt;br /&gt;
               fy(i) = fy(i) + a*dy&lt;br /&gt;
               fx(j) = fx(j) - a*dx&lt;br /&gt;
               fy(j) = fy(j) - a*dy&lt;br /&gt;
               e_pot = e_pot + 4.0*eps*(sigma2/r2)**3*((sigma2/r2)**3-1.0) !Energia potencial!&lt;br /&gt;
               p = p + a*(dx*dx + dy*dy)                                   !Pressão!&lt;br /&gt;
           END DO&lt;br /&gt;
       END DO&lt;br /&gt;
       END SUBROUTINE      &lt;br /&gt;
!---------------------------------------------------------------------&lt;br /&gt;
!    Implementa a condição de contorno&lt;br /&gt;
       SUBROUTINE condicao_contorno(x,y)&lt;br /&gt;
       USE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: i&lt;br /&gt;
       REAL(8) :: x(N),y(N)&lt;br /&gt;
       DO i=1,N&lt;br /&gt;
           IF (x(i) .gt. Lx) THEN&lt;br /&gt;
               x(i) = x(i) - Lx&lt;br /&gt;
           ELSE IF (x(i) .lt. 0) THEN&lt;br /&gt;
               x(i) = x(i) + Lx&lt;br /&gt;
           END IF  &lt;br /&gt;
           IF (y(i) .gt. Ly) THEN&lt;br /&gt;
               y(i) = y(i) - Ly&lt;br /&gt;
           ELSE IF (y(i) .lt. 0) THEN&lt;br /&gt;
               y(i) = y(i) + Ly&lt;br /&gt;
           END IF&lt;br /&gt;
       END DO  &lt;br /&gt;
       END SUBROUTINE&lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
!    ALgoritmo Velocity-Verlet&lt;br /&gt;
       SUBROUTINE verlet(rx,ry,vx,vy,fx,fy,deltat,e_cin,e_pot,p)&lt;br /&gt;
       USE globais &lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: i&lt;br /&gt;
       REAL(8) :: deltat,e_cin,e_pot,p&lt;br /&gt;
       REAL(8) :: rx(N),ry(N),vx(N),vy(N),fx(N),fy(N),g(nhis)&lt;br /&gt;
       e_cin = 0.0&lt;br /&gt;
       DO i=1,N&lt;br /&gt;
           vx(i) = vx(i) + 0.5*fx(i)*deltat &lt;br /&gt;
           vy(i) = vy(i) + 0.5*fy(i)*deltat&lt;br /&gt;
           rx(i) = rx(i) + vx(i)*deltat &lt;br /&gt;
           ry(i) = ry(i) + vy(i)*deltat&lt;br /&gt;
       END DO                                    &lt;br /&gt;
       CALL condicao_contorno(rx,ry)            &lt;br /&gt;
       CALL forcas(rx,ry,fx,fy,e_pot,p)               &lt;br /&gt;
       DO i=1,N&lt;br /&gt;
           vx(i) = vx(i) + 0.5*fx(i)*deltat &lt;br /&gt;
           vy(i) = vy(i) + 0.5*fy(i)*deltat&lt;br /&gt;
           e_cin = e_cin + vx(i)*vx(i) + vy(i)*vy(i)&lt;br /&gt;
       END DO&lt;br /&gt;
       e_cin = 0.5*e_cin        !Energia cinética!&lt;br /&gt;
       END SUBROUTINE&lt;br /&gt;
!---------------------------------------------------------------------&lt;br /&gt;
!    Calcula a função distribuição radial&lt;br /&gt;
       SUBROUTINE fdr(switch,x,y,ngr,delg,dist,g)&lt;br /&gt;
       USE globais&lt;br /&gt;
       IMPLICIT NONE&lt;br /&gt;
       INTEGER :: i,j,k,ig,ngr,switch&lt;br /&gt;
     !  INTEGER :: hist_g(nhis)&lt;br /&gt;
       REAL(8) :: dx,dy,r,r2,delg,vb,nid&lt;br /&gt;
       REAL(8) :: x(N),y(N),dist(nhis),g(nhis)&lt;br /&gt;
       IF (switch == 0) THEN                  !Inicializa!&lt;br /&gt;
           ngr = 0&lt;br /&gt;
           delg = Lx/(2.0*nhis)               !Tamanho do bin!&lt;br /&gt;
           dist(:) = 0.0&lt;br /&gt;
         !  hist_g(:) = 0&lt;br /&gt;
           g(:) = 0.0&lt;br /&gt;
       ELSE IF (switch == 1) THEN             !amostra!&lt;br /&gt;
           ngr = ngr + 1&lt;br /&gt;
           DO i=1,N-1&lt;br /&gt;
               DO j=i+1,N&lt;br /&gt;
               ! Convenção da imagem mínima&lt;br /&gt;
                   dx = x(i)-x(j)&lt;br /&gt;
                   dy = y(i)-y(j)&lt;br /&gt;
                   dx = dx - Lx*nint(dx/Lx)&lt;br /&gt;
                   dy = dy - Ly*nint(dy/Ly)&lt;br /&gt;
                   r2 = dx*dx + dy*dy&lt;br /&gt;
                   r = sqrt(r2)&lt;br /&gt;
                   ig = int(r/delg) &lt;br /&gt;
                   g(ig) = g(ig) + 2&lt;br /&gt;
               END DO&lt;br /&gt;
           END DO&lt;br /&gt;
       ELSE IF (switch == 2) THEN             !calcula g(r)!&lt;br /&gt;
           DO k=1,nhis &lt;br /&gt;
               dist(k) = delg*(k + 0.5)&lt;br /&gt;
               vb = (2*k+1)*delg*delg&lt;br /&gt;
               nid = pi*vb*rho&lt;br /&gt;
               g(k) = g(k)/(ngr*N*nid)   !Normaliza g(r)!&lt;br /&gt;
           END DO &lt;br /&gt;
       END IF&lt;br /&gt;
       END SUBROUTINE&lt;/div&gt;</summary>
		<author><name>Gustavobopsin</name></author>
	</entry>
</feed>