Index: codes/icosagcm/devel/arch/arch-X64_IRENE.fcm
===================================================================
--- codes/icosagcm/devel/arch/arch-X64_IRENE.fcm	(revision 737)
+++ codes/icosagcm/devel/arch/arch-X64_IRENE.fcm	(revision 738)
@@ -7,5 +7,6 @@
 %FPP_DEF             KEY_NONE CPP_NETCDF4
 %BASE_FFLAGS         -fPIC -i4 -r8 -auto -align all -I${MKLROOT}/include
-%PROD_FFLAGS         -g -traceback -O3 -xCORE-AVX512
+%FAST_FFLAGS         -g -traceback -O3 -xHost
+%PROD_FFLAGS         -g -traceback -O3 -xAVX
 %DEV_FFLAGS          -g -O1 -traceback
 %DEBUG_FFLAGS        -g -traceback -check bounds -fp-model strict
Index: codes/icosagcm/devel/arch/arch-X64_IRENE.opt
===================================================================
--- codes/icosagcm/devel/arch/arch-X64_IRENE.opt	(revision 738)
+++ codes/icosagcm/devel/arch/arch-X64_IRENE.opt	(revision 738)
@@ -0,0 +1,2 @@
+# arch.opt is there to set per-file specific compiling options
+bld::tool::fflags::dynamics %HOPT_FFLAGS
Index: codes/icosagcm/devel/bld.cfg
===================================================================
--- codes/icosagcm/devel/bld.cfg	(revision 737)
+++ codes/icosagcm/devel/bld.cfg	(revision 738)
@@ -49,4 +49,8 @@
 bld::tool::fppflags  %FPP_FLAGS
 
+# arch.opt is there to set per-file specific compiling options ; example :
+#bld::tool::fflags::phys::readaerosol %BASE_FFLAGS %PROD_FFLAGS  %INCDIR -C hopt -pi auto
+inc arch.opt
+
 # Pre-process code before analysing dependencies
 bld::pp              false
Index: codes/icosagcm/devel/make_icosa
===================================================================
--- codes/icosagcm/devel/make_icosa	(revision 737)
+++ codes/icosagcm/devel/make_icosa	(revision 738)
@@ -96,4 +96,17 @@
 mkdir .void_dir
 
+function link_if_exists()
+{
+  suffix=$1
+  if test -f $arch_path/arch-${arch}.${suffix}
+  then
+    ln -s $arch_path/arch-${arch}.${suffix} arch.${suffix}
+  elif test -f $arch_default_path/arch-${arch}.${suffix}
+  then
+    ln -s $arch_default_path/arch-${arch}.${suffix} arch.${suffix}
+  fi
+        
+}
+
 if [[ "$arch_defined" == "TRUE" ]]
 then
@@ -101,32 +114,10 @@
   rm -f arch.fcm
   rm -f arch.env
-
-  if test -f $arch_path/arch-${arch}.path
-  then
-    ln -s $arch_path/arch-${arch}.path arch.path
-  elif test -f $arch_default_path/arch-${arch}.path
-  then
-    ln -s $arch_default_path/arch-${arch}.path arch.path
-  fi
-        
-  if test -f $arch_path/arch-${arch}.fcm
-  then
-    ln -s $arch_path/arch-${arch}.fcm arch.fcm
-  elif test -f $arch_default_path/arch-${arch}.fcm
-  then
-    ln -s $arch_default_path/arch-${arch}.fcm arch.fcm
-  fi
-
-  if test -f $arch_path/arch-${arch}.env
-  then
-    ln -s $arch_path/arch-${arch}.env arch.env
-  elif test -f $arch_default_path/arch-${arch}.env
-  then
-    ln -s $arch_default_path/arch-${arch}.env arch.env
-  else
-    ln -s .void_file arch.env
-  fi
+  
+  for suffix in env path fcm opt ; do link_if_exists $suffix ; done
+
   source arch.env
   source arch.path
+
 else
   echo "Veuillez definir une architecture cible"
@@ -135,15 +126,5 @@
 
 LD_FLAGS="%BASE_LD"
-
-if [[ "$compil_mode" == "prod" ]]
-then
-  COMPIL_FFLAGS="%PROD_FFLAGS"
-elif [[ "$compil_mode" == "dev" ]]
-then
-  COMPIL_FFLAGS="%DEV_FFLAGS"
-elif [[ "$compil_mode" == "debug" ]]
-then
-  COMPIL_FFLAGS="%DEBUG_FFLAGS"
-fi
+COMPIL_FFLAGS=""
 
 if [[ "$parallel" == "mpi" ]]
@@ -210,7 +191,22 @@
 fi
 
+if [[ "$compil_mode" == "prod" ]]
+then
+  HOPT_FFLAGS="%FAST_FFLAGS $COMPIL_FFLAGS"
+  COMPIL_FFLAGS="%PROD_FFLAGS $COMPIL_FFLAGS"
+elif [[ "$compil_mode" == "dev" ]]
+then
+  COMPIL_FFLAGS="%DEV_FFLAGS $COMPIL_FFLAGS"
+  HOPT_FFLAGS=$COMPIL_FFLAGS
+elif [[ "$compil_mode" == "debug" ]]
+then
+  COMPIL_FFLAGS="%DEBUG_FFLAGS $COMPIL_FFLAGS"
+  HOPT_FFLAGS=$COMPIL_FFLAGS
+fi
+
 rm -f config.fcm
 
 echo "%COMPIL_FFLAGS $COMPIL_FFLAGS" >> config.fcm
+echo "%HOPT_FFLAGS $HOPT_FFLAGS" >> config.fcm
 echo "%LD_FLAGS $LD_FLAGS" >> config.fcm
 echo "%CPP_KEY $CPP_KEY" >> config.fcm
