Afegir sessions 1, 2 del lab de fenòmens

A la sessió 1 falta completar l'exercici extra.

Change-Id: I76f9a74f7648b77c3c60ac91cc4a29477386f383
diff --git a/quad10/fenomens/lab/p2/MC-1.f90 b/quad10/fenomens/lab/p2/MC-1.f90
new file mode 100644
index 0000000..896b0f0
--- /dev/null
+++ b/quad10/fenomens/lab/p2/MC-1.f90
@@ -0,0 +1,57 @@
+program p2e1
+  implicit none
+  integer*4, PARAMETER :: L = 32
+  integer*2 :: S(1:L, 1:L)
+  real*8 :: MAGNE, ENERG, TEMP, E, DIFE, DELTA, M, SUMA, W(-8:8), genrand_real2
+  integer*4 :: PBC(0:L+1), I, J, IMC, MCTOT, IPAS, N, SEED
+
+  ! Inicialitzem algunes variables sobre el problema
+  TEMP = 1.3d0
+  SEED = 234567
+  MCTOT = 3000
+  N = L*L
+
+  ! Inicialitzem variable que ens fa latent la periodicitat
+  PBC(0) = L
+  PBC(L + 1) = 1
+  do I = 1, L
+    PBC(I) = I
+  enddo
+
+  ! Cache dels valors de l'exponencial
+  do I = -8, 8
+    W(I) = exp(-float(I)/TEMP)
+  enddo
+
+  ! Inicialitzem la matriu d'spins aleatòriament
+  call WRITECONFIG(S, L)
+
+  E = ENERG(S, L, PBC)
+  M = MAGNE(S, L)
+  print *, "Energia inicial:", E, "Magnet. inicial:", M
+
+  ! Iterem amb el mètode de Montecarlo
+  do IMC = 1, MCTOT
+    do IPAS = 1, N
+      ! LOS LOOPS HACEN COSAS
+      I = INT(genrand_real2()*L) + 1
+      J = INT(genrand_real2()*L) + 1
+      SUMA = S(PBC(I - 1), J) + S(PBC(I + 1), J) + S(I, PBC(J - 1)) + S(I, PBC(J + 1))
+      DIFE = 2*SUMA*S(I, J)
+
+      if (DIFE > 0) then
+        DELTA = genrand_real2()
+        if (DELTA >= W(int(DIFE))) then
+          ! NO ho acceptem
+          cycle
+        endif
+      endif
+
+      ! Sí ho acceptem:
+      S(I, J) = -S(I, J)
+      E = E + DIFE
+      M = M + 2*S(I, J)
+    enddo
+    print *, "Iter:", IMC, "Energia:", E, "Recalc.:", ENERG(S, L, PBC), "Magn:", INT(M), "Recalc.:", INT(MAGNE(S, L))
+  enddo
+endprogram p2e1