diff --git a/.Rbuildignore b/.Rbuildignore
index acd9e68a9a2e50eff8ef783a77b63bab66e63424..0213e2a03f260331139d4b10befe6139bd114f9b 100644
--- a/.Rbuildignore
+++ b/.Rbuildignore
@@ -9,3 +9,4 @@
 ^\.vscode$
 ^Rplots\.pdf$
 ^ci$
+^data-raw$
diff --git a/R/CreateRunOptions.R b/R/CreateRunOptions.R
index 4edbdd7184f0b489ebde8c6628bae9eb5a6ab998..f6835d6d93a8f57a045aa184d85fd81b0a30354f 100644
--- a/R/CreateRunOptions.R
+++ b/R/CreateRunOptions.R
@@ -24,6 +24,11 @@ CreateRunOptions <- function(FUN_MOD, InputsModel,
   ObjectClass <- FeatFUN_MOD$Class
   TimeStepMean <- FeatFUN_MOD$TimeStepMean
 
+  ## Model output variable list
+  ModelHydro <- gsub("CemaNeige", "", FeatFUN_MOD$CodeMod)
+  FortranOutputs <- .FortranOutputs(GR = ModelHydro,
+                  isCN = substr(FeatFUN_MOD$CodeMod, 1, 9) == "CemaNeige")
+
   ## manage class
   if (IsIntStore) {
     ObjectClass <- c(ObjectClass, "interception")
@@ -473,7 +478,8 @@ CreateRunOptions <- function(FUN_MOD, InputsModel,
                      IniStates = IniStates,
                      IniResLevels = IniResLevels,
                      Outputs_Cal = Outputs_Cal,
-                     Outputs_Sim = Outputs_Sim)
+                     Outputs_Sim = Outputs_Sim,
+                     FortranOutputs = FortranOutputs)
 
   if ("CemaNeige" %in% ObjectClass) {
     RunOptions <- c(RunOptions, list(MeanAnSolidPrecip = MeanAnSolidPrecip))
diff --git a/data-raw/vignettes.R b/data-raw/vignettes.R
new file mode 100644
index 0000000000000000000000000000000000000000..618fb37da8b32c31d036b6dd385f324cfb51766e
--- /dev/null
+++ b/data-raw/vignettes.R
@@ -0,0 +1,25 @@
+## code to prepare datasets used in vignettes
+library(airGR)
+
+source("tests/testthat/helper_vignettes.R")
+
+# V02.1_param_optim
+RunVignetteChunks("V02.1_param_optim")
+save(resGLOB, resPORT,
+     file = "inst/vignettesData/vignetteParamOptim.rda",
+     version = 2)
+save(algo, Ind_Run, InputsCrit_inv, InputsModel, MOptimGR4J, optMO, RunOptions,
+     file = "inst/vignettesData/vignetteParamOptimCaramel.rda",
+     version = 2)
+
+# V02.2_param_mcmc
+RunVignetteChunks("V02.2_param_mcmc")
+save(gelRub, multDRAM,
+     file = "inst/vignettesData/vignetteParamMCMC.rda",
+     version = 2)
+
+# V04_cemaneige_hysteresis
+RunVignetteChunks("V04_cemaneige_hysteresis")
+save(OutputsCrit_Cal, OutputsCrit_Cal_NoHyst, OutputsCrit_Val, OutputsCrit_Val_NoHyst,
+     file = "inst/vignettesData/vignetteParamMCMC.rda",
+     version = 2)
diff --git a/inst/vignettesData/vignetteParamOptimCaramel.rda b/inst/vignettesData/vignetteParamOptimCaramel.rda
index 7d2e9fcc41220cab22fa5b1e57e7c666ef74803e..26b5086ffd6ad83c54be920bf5704b387652645d 100644
Binary files a/inst/vignettesData/vignetteParamOptimCaramel.rda and b/inst/vignettesData/vignetteParamOptimCaramel.rda differ
diff --git a/tests/testthat/helper_vignettes.R b/tests/testthat/helper_vignettes.R
index 931f99a55ee90fa4417040a36b58f66220aaac71..687101be34de23f4cdb031114a82d4a0ff4bd71f 100644
--- a/tests/testthat/helper_vignettes.R
+++ b/tests/testthat/helper_vignettes.R
@@ -73,6 +73,9 @@ RunVignetteChunks <- function(vignette,
   if(file.exists(sprintf("../../vignettes/%s.Rmd", vignette))) {
     # testthat context in development environnement
     RunRmdChunks(sprintf("../../vignettes/%s.Rmd", vignette), tmpFolder, force.eval)
+  } else if(file.exists(sprintf("vignettes/%s.Rmd", vignette))) {
+    # context in direct run in development environnement
+    RunRmdChunks(sprintf("vignettes/%s.Rmd", vignette), tmpFolder, force.eval)
   } else {
     # R CMD check context in package environnement
     RunRmdChunks(system.file(sprintf("doc/%s.Rmd", vignette), package = "airGR"), tmpFolder, force.eval)