diff --git a/quad10/fenomens/lab/p3/MC-1.f90 b/quad10/fenomens/lab/p3/MC-1.f90
new file mode 100644
index 0000000..b6f519b
--- /dev/null
+++ b/quad10/fenomens/lab/p3/MC-1.f90
@@ -0,0 +1,78 @@
+program main
+  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
+  character :: TEMPSTRING*100, str*20
+
+  if (command_argument_count() < 1) then
+    print *, "Error: please supply a command-line argument with the"
+    print *, "temperature, via './mc1 {TEMPERATURE}', where {TEMPERATURE}"
+    print *, "is the temperature."
+    stop
+  endif
+
+  ! Inicialitzem algunes variables sobre el problema
+  call get_command_argument(1, TEMPSTRING) ! Ex: 2.0d0
+  TEMPSTRING = trim(adjustl(TEMPSTRING))
+  read (TEMPSTRING, *) TEMP
+  SEED = 234567
+  MCTOT = 10000
+  N = L*L
+
+  ! Obrim el fitxer on escriurem els resultats a cada iteració
+  open(unit = 12, file = "out_data/" // "SIM-L-" // trim(str(L)) // "-TEMP-" // &
+      trim(str(int(1000*TEMP))) // "-MCTOT-" // trim(str(MCTOT)) //".out")
+
+  ! 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
+  write (12, *) "0", E, 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
+    if (mod(IMC, 1000) == 0) then
+      print *, "Iter:", IMC, "Energia:", E, "Magn:", INT(M)
+    endif
+    write (12, *) IMC, E, M
+  enddo
+
+  ! Tanquem el fitxer de sortida
+  close(12)
+endprogram main
