diff --git a/quad10/fenomens/lab/p4/MC-2.f90 b/quad10/fenomens/lab/p4/MC-2.f90
index 9b8e78e..8398997 100644
--- a/quad10/fenomens/lab/p4/MC-2.f90
+++ b/quad10/fenomens/lab/p4/MC-2.f90
@@ -69,10 +69,6 @@
         M = M + 2*S(I, J)
       enddo
 
-      !if (mod(IMC, 10000) == 0) then
-      !  print *, "Iter:", IMC, "Energia:", E, "Magn:", INT(M)
-      !endif
-
       if (IMC > MCINI .and. mod(IMC, MCD) == 0) then
         SUMI = SUMI + 1
 
diff --git a/quad10/fenomens/lab/p4/graphs/dependenciaEnL.gnu b/quad10/fenomens/lab/p4/graphs/dependenciaEnL.gnu
index ec68f46..8061b30 100755
--- a/quad10/fenomens/lab/p4/graphs/dependenciaEnL.gnu
+++ b/quad10/fenomens/lab/p4/graphs/dependenciaEnL.gnu
@@ -4,24 +4,64 @@
 datafilepost = '.dat'
 LS = ARG1
 
-set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+graphStyle = "with linespoints pointsize 0.7"
+svgTerminal = "set terminal svg dashed size 800, 800 font \"Computer Modern,Tinos,Helvetica,15\""
+pngTerminal = "set terminal pngcairo size 800, 800 font \"Computer Modern,Tinos,Helvetica,15\""
 
-set title "Capacitat calorífica"
-set output outputfile.'_capacitat_calorifica.svg'
-plot for [L in LS] datafilepre . L . datafilepost using 2:10 with linespoints title "L = ".L
+set xlabel "Temperatura (K)"
+set yrange [*<0:0<*]
+# ------------------------------------
+# Gràfica per la capacitat calorífica:
+# ------------------------------------
+set title "Capacitat calorífica per diferents valors d'L"
 
-set title "Susceptibilitat magnètica"
-set output outputfile.'_susceptibilitat_magnetica.svg'
-plot for [L in LS] datafilepre . L . datafilepost using 2:11 with linespoints title "L = ".L
+@svgTerminal
+set output outputfile.'capacitat_calorifica.svg'
+plot for [L in LS] datafilepre . L . datafilepost using 2:10 @graphStyle title "L = ".L
 
-set title "Energia"
-set output outputfile.'_energia.svg'
+@pngTerminal
+set output outputfile.'capacitat_calorifica.png'
+replot
+
+# ----------------------------------------
+# Gràfica per la susceptibilitat magnètica
+# ----------------------------------------
+set title "Susceptibilitat magnètica per diferents valors d'L"
+
+@svgTerminal
+set output outputfile.'susceptibilitat_magnetica.svg'
+plot for [L in LS] datafilepre . L . datafilepost using 2:11 @graphStyle title "L = ".L
+
+@pngTerminal
+set output outputfile.'susceptibilitat_magnetica.png'
+replot
+
+# ---------------------
+# Gràfica per l'energia
+# ---------------------
+set title "Energia per diferents valors d'L"
+
+@svgTerminal
+set output outputfile.'energia.svg'
 set key bottom right
-plot for [L in LS] datafilepre . L . datafilepost using 2:($3/(L**2)) with linespoints title "<E>/N, L = ".L, \
-     for [L in LS] datafilepre . L . datafilepost using 2:(-sqrt($4)/(L**2)) with linespoints title "-sqrt(<E^2>)/N, L = ".L
+plot for [L in LS] datafilepre . L . datafilepost using 2:($3/(L**2)) @graphStyle title "<E>/N, L = ".L, \
+     for [L in LS] datafilepre . L . datafilepost using 2:(-sqrt($4)/(L**2)) @graphStyle title "-sqrt(<E^2>)/N, L = ".L
 
-set title "Magnetització"
-set output outputfile.'_magnetitzacio.svg'
+@pngTerminal
+set output outputfile.'energia.png'
+replot
+
+# ----------------------------
+# Gràfica per la magnetització
+# ----------------------------
+set title "Magnetització per diferents valors d'L"
+
+@svgTerminal
+set output outputfile.'magnetitzacio.svg'
 set key top right
-plot for [L in LS] datafilepre . L . datafilepost using 2:($7/(L**2)) with linespoints title "<|M|>/N, L = ".L, \
-     for [L in LS] datafilepre . L . datafilepost using 2:(sqrt($8)/(L**2)) with linespoints title "sqrt(<M^2>)/N, L = ".L
+plot for [L in LS] datafilepre . L . datafilepost using 2:($7/(L**2)) @graphStyle title "<|M|>/N, L = ".L, \
+     for [L in LS] datafilepre . L . datafilepost using 2:(sqrt($8)/(L**2)) @graphStyle title "sqrt(<M^2>)/N, L = ".L
+
+@pngTerminal
+set output outputfile.'magnetitzacio.png'
+replot
diff --git a/quad10/fenomens/lab/p4/run.bash b/quad10/fenomens/lab/p4/run.bash
index 73031d7..96122de 100755
--- a/quad10/fenomens/lab/p4/run.bash
+++ b/quad10/fenomens/lab/p4/run.bash
@@ -1,12 +1,87 @@
 #!/bin/bash
+progname=$0
+function usage() {
+  cat <<END
+
+  Usage: $progname T L [outFilePrefix [--help --skipIfComputed
+             --nSeeds NSEEDS --mcTot MCTOT --mcIni MCINI --mcD MCD
+             --initialSeed INITIALSEED]]
+
+  the output file will be saved at "data_out/{{outFilePrefix}}"
+
+  optional arguments:
+    -h, --help            show this help message and exit.
+    -s, --skipIfComputed  skip if the output file already exists.
+    -n, --nSeeds          number of seeds which will be used for the
+                          simulation.
+    -m, --mcTot           number of iterations which will be performed
+                          in the simulation for each seed.
+    -i, --mcIni           number of iterations before the program
+                          starts measuring physical properties of the
+                          system.
+    -d, --mcD             the program will measure the physical
+                          properties when iteration % MCD == 0.
+    --initialSeed         initial seed for the Monte Carlo algorithm.
+END
+}
+
+if (( "$#" < 2 )); then
+  usage
+  exit 1
+fi
+
 T="$1"
 L="$2"
-outFolder="dep_en_L/$L"
-outFilePrefix="${outFolder}/$T"
+defaultOutFilePrefix="L$L-T$T"
+outFilePrefix="${3:-$defaultOutFilePrefix}"
 
-if [ -f "data_out/${outFilePrefix}.res" ]; then
+opts=$(getopt -l "help,skipIfComputed,nSeeds:,mcTot:,mcIni:,mcD:,initialSeed:" -o "hsn:m:i:d:" -n "$progname" -- "${@:4}")
+eval set -- "$opts"
+
+skipIfComputed=false
+nSeeds=150
+mcTot=40000
+mcIni=2000
+mcD=20
+initialSeed=117654
+
+while true; do
+  case "$1" in
+    -h | --help)
+      usage
+      exit
+      ;;
+    -s | --skipIfComputed)
+      skipIfComputed=true
+      shift
+      ;;
+    -n | --nSeeds)
+      nSeeds="$2"
+      shift 2
+      ;;
+    -m | --mcTot)
+      mcTot="$2"
+      shift 2
+      ;;
+    -i | --mcIni)
+      mcIni="$2"
+      shift 2
+      ;;
+    -d | --mcD)
+      mcD="$2"
+      shift 2
+      ;;
+    --initialSeed)
+      initialSeed="$2"
+      shift 2
+      ;;
+    *) break ;;
+  esac
+done
+
+if [ "$skipIfComputed" == "true" ] && [ -f "data_out/${outFilePrefix}.res" ]; then
   echo "Skipping computation for L=$L, T=$T (.res file already exists)"
-  exit 0
+  exit
 fi
 
 echo "Starting computation for L=$L, T=$T"
@@ -16,10 +91,10 @@
 L=$L,
 NOM="$outFilePrefix",
 TEMP=$T,
-NSEED=150,
-SEED0=117654,
-MCTOT=40000,
-MCINI=2000,
-MCD=20
+NSEED=$nSeeds,
+SEED0=$initialSeed,
+MCTOT=$mcTot,
+MCINI=$mcIni,
+MCD=$mcD
 &END
 EOF
diff --git a/quad10/fenomens/lab/p4/runAll.bash b/quad10/fenomens/lab/p4/runAll.bash
index e190a34..c4f0783 100755
--- a/quad10/fenomens/lab/p4/runAll.bash
+++ b/quad10/fenomens/lab/p4/runAll.bash
@@ -1,7 +1,7 @@
-TList=$(seq 1.6 0.05 3.2)
+TList=$((seq 1.6 0.05 3.2; seq 2.2 0.01 2.5) | sort -n | uniq)
 LList="8 16 32 64"
 for L in $LList; do
   mkdir -p data_out/dep_en_L/$L
 done
 joblogFile="data_out/dep_en_L/joblog"
-parallel -P -1 --linebuffer --tag --joblog "$joblogFile" ./run.bash {1} {2} ::: $TList ::: $LList
+parallel -P -1 --linebuffer --tag --joblog "$joblogFile" "./run.bash {1} {2} dep_en_L/{2}/{1} --skipIfComputed" ::: $TList ::: $LList
