From 6bb6e89e8bcc6e094d2773c333f2370362bb3a04 Mon Sep 17 00:00:00 2001
From: Baptiste LENIAU <baptiste.leniau@subatech.in2p3.fr>
Date: Mon, 31 Aug 2015 12:01:15 +0000
Subject: [PATCH] Add a prettier terminal output when running CLASS. To use the
 old output use SetSoberTerminalOutput()

git-svn-id: svn+ssh://svn.in2p3.fr/class@723 0e7d625b-0364-4367-a6be-d5be4a48d228
---
 source/branches/BaM_Dev/src/Scenario.cxx | 229 ++++++++++++++++++++---
 1 file changed, 198 insertions(+), 31 deletions(-)

diff --git a/source/branches/BaM_Dev/src/Scenario.cxx b/source/branches/BaM_Dev/src/Scenario.cxx
index 4ca06a2f8..711a8a659 100755
--- a/source/branches/BaM_Dev/src/Scenario.cxx
+++ b/source/branches/BaM_Dev/src/Scenario.cxx
@@ -53,6 +53,7 @@ Scenario::Scenario(CLASSLogger* log, cSecond abstime):CLASSObject(log)
 	fParcPower = 0;
 
 	fZAIThreshold = -1;
+	fOldProgressBar = false;
 
 	// Warning
 
@@ -66,8 +67,6 @@ Scenario::Scenario(CLASSLogger* log, cSecond abstime):CLASSObject(log)
 
 
 }
-
-
 //________________________________________________________________________
 Scenario::Scenario( cSecond abstime, CLASSLogger* log):CLASSObject(log)
 {
@@ -89,7 +88,8 @@ Scenario::Scenario( cSecond abstime, CLASSLogger* log):CLASSObject(log)
 	fParcPower = 0;
 	
 	fZAIThreshold = -1;
-	
+	fOldProgressBar = false;
+
 	// Warning
 	
 	
@@ -102,9 +102,8 @@ Scenario::Scenario( cSecond abstime, CLASSLogger* log):CLASSObject(log)
 	
 	
 }
-
 //________________________________________________________________________
-Scenario::Scenario( cSecond abstime ):CLASSObject(new CLASSLogger("CLASS_OUTPUT.log"))
+Scenario::Scenario( cSecond abstime):CLASSObject(new CLASSLogger("CLASS_OUTPUT.log"))
 {
 	
 	
@@ -124,6 +123,7 @@ Scenario::Scenario( cSecond abstime ):CLASSObject(new CLASSLogger("CLASS_OUTPUT.
 	fParcPower = 0;
 	
 	fZAIThreshold = -1;
+	fOldProgressBar = false;
 	
 	// Warning
 	
@@ -137,8 +137,6 @@ Scenario::Scenario( cSecond abstime ):CLASSObject(new CLASSLogger("CLASS_OUTPUT.
 	
 	
 }
-
-
 //________________________________________________________________________
 Scenario::~Scenario()
 {
@@ -148,7 +146,6 @@ Scenario::~Scenario()
 
 
 }
-
 //________________________________________________________________________
 void Scenario::AddPool(Pool* Pool)
 {
@@ -183,7 +180,6 @@ void Scenario::AddPool(Pool* Pool)
 
 
 }
-
 //________________________________________________________________________
 void Scenario::AddReactor(Reactor* reactor)
 {
@@ -216,7 +212,6 @@ void Scenario::AddReactor(Reactor* reactor)
 
 
 }
-
 //________________________________________________________________________
 void Scenario::AddStorage(Storage* storage)
 {
@@ -324,6 +319,7 @@ void Scenario::AddSeparationPlant(SeparationPlant* SeparationPlant)
 void Scenario::BuildTimeVector(cSecond t)
 {
 	DBGL
+
 	fTimeStep.clear();
 	fTimeStep.insert( pair<cSecond ,int>(t,1) );
 	//********* Printing Step *********//
@@ -565,7 +561,7 @@ void Scenario::BackEndEvolution()
 	PoolDump();
 	DBGL
 }
-
+//________________________________________________________________________
 void Scenario::PoolEvolution()
 {
 	DBGL
@@ -575,7 +571,7 @@ void Scenario::PoolEvolution()
 
 	DBGL
 }
-
+//________________________________________________________________________
 void Scenario::StorageEvolution()
 {
 	DBGL
@@ -585,7 +581,7 @@ void Scenario::StorageEvolution()
 
 	DBGL
 }
-
+//________________________________________________________________________
 void Scenario::FabricationPlantEvolution()
 {
 	DBGL
@@ -595,8 +591,7 @@ void Scenario::FabricationPlantEvolution()
 
 	DBGL
 }
-
-
+//________________________________________________________________________
 void Scenario::PoolDump()
 {
 	DBGL
@@ -626,6 +621,8 @@ void Scenario::ReactorEvolution()
 void Scenario::Evolution(cSecond t)
 {
 	DBGL
+	fCloverCount = 0;
+	PrintCLASSPresentation();
 
 	BuildTimeVector(t);
 
@@ -667,14 +664,18 @@ void Scenario::Evolution(cSecond t)
 		}
 
 	}
-	cout << endl;
+	cout<<"Calculation complete successfully     "<<endl<<endl;
 
 	DBGL
 }
 
-void Scenario::ProgressPrintout(cSecond t)
-{
+//_______________________________________________________________________
+//______________________________ Out Method ______________________________
+//________________________________________________________________________
 
+//________________________________________________________________________
+void Scenario::OldProgressPrintout(cSecond t)
+{
 	double Time = (fAbsoluteTime-fStartingTime)/cYear ;
 	double Total = (t-fStartingTime)/cYear;
 
@@ -690,22 +691,195 @@ void Scenario::ProgressPrintout(cSecond t)
 		cout << "-";
 	cout << "] ";
 
-	cout << " Processed ";
+	//cout << " Processed ";
 	if (Time < 10) cout << " ";
 	if (Time < 100) cout << " ";
 	cout << (int)Time << " / " << (int)Total << " Years \r";
 	if( fLog->GetVerboseLVL() < 2) cout << flush;
 	else cout << endl;
 
+}
+//________________________________________________________________________
+void Scenario::ProgressPrintout(cSecond t)
+{
+	double Time = (fAbsoluteTime-fStartingTime)/cYear ;
+	double Total = (t-fStartingTime)/cYear;
+
+	if(fOldProgressBar)
+		OldProgressPrintout(t);
+
+	else
+	{
+		system("clear");
+		/****Printing CLASS  info + nuclear clover****/
+		if(fCloverCount>3)
+			fCloverCount=0;
+		PrintClover(fCloverCount);
+		fCloverCount++;
+
+		/****Printing  Progression bar r****/
+		static  int ProgressBarlength = 47;
+		cout << "тХн";
+		for(int i = 0; i < ProgressBarlength; i++)
+			cout <<"тФА" ;
+
+		cout << "тХо"<<endl;
+		cout<<"тФВ";
+
+		stringstream Completed ; Completed << "\033[42m";
+		for(int i = 0; i < (int)(Time/Total*ProgressBarlength); i++)
+			Completed<< " ";
+
+		Completed << "\033[0m";
+
+		for(int i = ProgressBarlength; i >= (int)(Time/Total*ProgressBarlength); i--)
+			Completed << " ";
+
+		cout<<Completed.str();
+		cout<<"тФВ"<<endl;
+
+		cout << "тХ░";
+		for(int i = 0; i < ProgressBarlength; i++)
+			cout <<"тФА" ;	
+		cout << "тХп"<<endl;
+
+
+		if (Time < 10) cout << " ";
+		if (Time < 100) cout << " ";
+		cout << (int)Time << " / " << (int)Total << " Years";
+		cout << endl<<endl;
+	}
 
 	INFO << " Proccessed " << (int)Time << " / " << (int)Total << " Years \r" << endl;
 
 }
-
 //________________________________________________________________________
-//______________________________ Out Method ______________________________
+void Scenario::PrintCLASSPresentation()
+{ 	
+	cout<<endl;	
+	cout<<"тХнтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХо"<<endl;
+	cout<<"тФВ   тЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХЧ      тЦИтЦИтЦИтЦИтЦИтХЧ тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ"<<endl;
+	cout<<"тФВ  тЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХЧтЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХФтХРтХРтХРтХРтХЭ     тФВ"<<endl;
+	cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ"<<endl;
+	cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХС     тФВ"<<endl;
+	cout<<"тФВ  тХЪтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХС  тЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХС     тФВ"<<endl;
+	cout<<"тФВ   тХЪтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХЭ  тХЪтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭ     тФВ"<<endl;
+	cout<<"тФВ                                  Version 4.1  тФВ"<<endl;
+	cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд"<<endl;
+	cout<<"тФВ Core Lybrary for Advance Scenario Simulation  тФВ"<<endl;
+	cout<<"тФВ                                               тФВ"<<endl;
+	cout<<"тФВ A dynamical nuclear fuel cycle code developed тФВ"<<endl; 
+	cout<<"тФВ           by the CNRS/IN2P3 & IRSN            тФВ"<<endl;
+	cout<<"тФВ https://forge.in2p3.fr/projects/classforge    тФВ"<<endl;
+	cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд"<<endl;
+	cout<<"тФВ Authors :                                     тФВ"<<endl;
+	cout<<"тФВ    B. MOUGINOT (@BaM)  B. LENIAU    (@BLG)    тФВ"<<endl;
+	cout<<"тФВ    F. COURTIN  (@FaC)  N. THIOLIERE (@NT)     тФВ"<<endl;
+	cout<<"тХ░тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХп"<<endl;
+	cout<<"                                                 "<<endl;
+	cout<<"        BEGINING FUEL CYCLE EVOLUTION           "<<endl;
+	cout<<"                                                "<<endl;
+	cout<<"Evolution progression   :                       "<<endl;	
+}
 //________________________________________________________________________
+void Scenario::PrintClover(int i)
+{
+                      
+    if(i == 0)   
+    {	cout<<"тХнтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХо                       "<<endl;
+		cout<<"тФВ   тЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХЧ      тЦИтЦИтЦИтЦИтЦИтХЧ тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ         @@            "<<endl;
+		cout<<"тФВ  тЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХЧтЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХФтХРтХРтХРтХРтХЭ     тФВ      @@@@@            "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ     @@@@@@            "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХС     тФВ    @@@@@@@            "<<endl;
+		cout<<"тФВ  тХЪтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХС  тЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХС     тФВ    @@@@@@@            "<<endl;
+		cout<<"тФВ   тХЪтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХЭ  тХЪтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭ     тФВ     @@@@@@       @    "<<endl;
+		cout<<"тФВ                                  Version 4.1  тФВ       @@@@     @@@@   "<<endl;
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд         @@   @@@@@@   "<<endl;
+		cout<<"тФВ Core Lybrary for Advance Scenario Simulation  тФВ           @ @@@@@@@   "<<endl;
+		cout<<"тФВ                                               тФВ          @@ @@@@@@@   "<<endl;
+		cout<<"тФВ A dynamical nuclear fuel cycle code developed тФВ         @    @@@@@@   "<<endl;
+		cout<<"тФВ           by the CNRS/IN2P3 & IRSN            тФВ       @@@@    @@@@@   "<<endl;
+		cout<<"тФВ https://forge.in2p3.fr/projects/classforge    тФВ      @@@@@      @@@@  "<<endl;
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд    @@@@@@@            "<<endl;
+		cout<<"тФВ Authors :                                     тФВ    @@@@@@@            "<<endl;
+		cout<<"тФВ    B. MOUGINOT (@BaM)  B. LENIAU    (@BLG)    тФВ     @@@@@@            "<<endl;
+		cout<<"тФВ    F. COURTIN  (@FaC)  N. THIOLIERE (@NT)     тФВ      @@@@@            "<<endl;
+		cout<<"тХ░тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХп        @@@            "<<endl;
+		cout<<"                                                                        "<<endl;
+	}	                                       
+	    if(i == 1)   
+    {	cout<<"тХнтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХо                       "<<endl;
+		cout<<"тФВ   тЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХЧ      тЦИтЦИтЦИтЦИтЦИтХЧ тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ      @ @@@@@@@@      "<<endl;
+		cout<<"тФВ  тЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХЧтЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХФтХРтХРтХРтХРтХЭ     тФВ       @@@@@@@@       "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ       @@@@@@@        "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХС     тФВ        @@@@@@        "<<endl;
+		cout<<"тФВ  тХЪтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХС  тЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХС     тФВ         @@@@@        "<<endl;
+		cout<<"тФВ   тХЪтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХЭ  тХЪтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭ     тФВ         @@@@         "<<endl;
+		cout<<"тФВ                                  Version 4.1  тФВ          @@          "<<endl;
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд          @           "<<endl;
+		cout<<"тФВ Core Lybrary for Advance Scenario Simulation  тФВ           @          "<<endl;
+		cout<<"тФВ                                               тФВ  @@@@@@@ @@ @@@@@@@  "<<endl;
+		cout<<"тФВ A dynamical nuclear fuel cycle code developed тФВ  @@@@@@@@  @@@@@@@@  "<<endl;
+		cout<<"тФВ           by the CNRS/IN2P3 & IRSN            тФВ  @@@@@@@@   @@@@@@@  "<<endl;
+		cout<<"тФВ https://forge.in2p3.fr/projects/classforge    тФВ   @@@@@@    @@@@@@   "<<endl;
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд   @@@@@      @@@@@   "<<endl;
+		cout<<"тФВ Authors :                                     тФВ    @@@@      @@@@    "<<endl;
+		cout<<"тФВ    B. MOUGINOT (@BaM)  B. LENIAU    (@BLG)    тФВ     @@        @@@    "<<endl;
+		cout<<"тФВ    F. COURTIN  (@FaC)  N. THIOLIERE (@NT)     тФВ      @          @    "<<endl;
+		cout<<"тХ░тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХп                      "<<endl;
+		cout<<"                                                                        "<<endl;
+	}
+
+    if(i == 2)   
+    {	cout<<"тХнтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХо                      "<<endl;
+		cout<<"тФВ   тЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХЧ      тЦИтЦИтЦИтЦИтЦИтХЧ тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ           @@@        "<<endl;
+		cout<<"тФВ  тЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХЧтЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХФтХРтХРтХРтХРтХЭ     тФВ           @@@@@      "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ           @@@@@@     "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХС     тФВ           @@@@@@@    "<<endl;
+		cout<<"тФВ  тХЪтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХС  тЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХС     тФВ           @@@@@@@@   "<<endl;
+		cout<<"тФВ   тХЪтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХЭ  тХЪтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭ     тФВ   @@      @@@@@@     "<<endl;
+		cout<<"тФВ                                  Version 4.1  тФВ   @@@     @@@@       "<<endl;
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд  @@@@@@    @@        "<<endl;
+		cout<<"тФВ Core Lybrary for Advance Scenario Simulation  тФВ  @@@@@@@@ @          "<<endl;
+		cout<<"тФВ                                               тФВ  @@@@@@@ @@          "<<endl;
+		cout<<"тФВ A dynamical nuclear fuel cycle code developed тФВ  @@@@@@    @         "<<endl;
+		cout<<"тФВ           by the CNRS/IN2P3 & IRSN            тФВ  @@@@@    @@@@       "<<endl;
+		cout<<"тФВ https://forge.in2p3.fr/projects/classforge    тФВ  @@       @@@@@@     "<<endl;
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд           @@@@@@@    "<<endl;
+		cout<<"тФВ Authors :                                     тФВ           @@@@@@@    "<<endl;
+		cout<<"тФВ    B. MOUGINOT (@BaM)  B. LENIAU    (@BLG)    тФВ           @@@@@@@    "<<endl;
+		cout<<"тФВ    F. COURTIN  (@FaC)  N. THIOLIERE (@NT)     тФВ           @@@@@      "<<endl;
+		cout<<"тХ░тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХп           @@@@       "<<endl;
+		cout<<"                                                                        "<<endl;
+
+	}
 
+    if(i == 3)   
+    {	cout<<"тХнтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХо                       "<<endl;
+		cout<<"тФВ   тЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХЧ      тЦИтЦИтЦИтЦИтЦИтХЧ тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ                      "<<endl;
+		cout<<"тФВ  тЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХЧтЦИтЦИтХФтХРтХРтХРтХРтХЭтЦИтЦИтХФтХРтХРтХРтХРтХЭ     тФВ                      "<<endl;
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧ     тФВ     @@        @@     "<<endl; 
+		cout<<"тФВ  тЦИтЦИтХС     тЦИтЦИтХС     тЦИтЦИтХФтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХСтХЪтХРтХРтХРтХРтЦИтЦИтХС     тФВ    @@@@       @@@    "<<endl; 
+		cout<<"тФВ  тХЪтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХЧтЦИтЦИтХС  тЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХСтЦИтЦИтЦИтЦИтЦИтЦИтЦИтХС     тФВ   @@@@@      @@@@@   "<<endl; 
+		cout<<"тФВ   тХЪтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХЭ  тХЪтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭтХЪтХРтХРтХРтХРтХРтХРтХЭ     тФВ   @@@@@@    @@@@@@   "<<endl; 
+		cout<<"тФВ                                  Version 4.1  тФВ   @@@@@@    @@@@@@@  "<<endl; 
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд  @@@@@@@@  @@@@@@@@  "<<endl; 
+		cout<<"тФВ Core Lybrary for Advance Scenario Simulation  тФВ  @@@@@@@@ @ @@@@@@@  "<<endl; 
+		cout<<"тФВ                                               тФВ          @@          "<<endl; 
+		cout<<"тФВ A dynamical nuclear fuel cycle code developed тФВ          @@          "<<endl; 
+		cout<<"тФВ           by the CNRS/IN2P3 & IRSN            тФВ         @@@@         "<<endl; 
+		cout<<"тФВ https://forge.in2p3.fr/projects/classforge    тФВ         @@@@@        "<<endl; 
+		cout<<"тФЬтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд        @@@@@@        "<<endl; 
+		cout<<"тФВ Authors :                                     тФВ        @@@@@@@       "<<endl; 
+		cout<<"тФВ    B. MOUGINOT (@BaM)  B. LENIAU    (@BLG)    тФВ       @@@@@@@@       "<<endl;
+		cout<<"тФВ    F. COURTIN  (@FaC)  N. THIOLIERE (@NT)     тФВ                      "<<endl;
+		cout<<"тХ░тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтХп                      "<<endl;
+		cout<<"                                                                        "<<endl;
+
+	}
+
+}
+//________________________________________________________________________
 void Scenario::ApplyZAIThreshold()
 {
 	for(int i  = 0; i < (int)fFabricationPlant.size(); i++)
@@ -725,10 +899,7 @@ void Scenario::ApplyZAIThreshold()
 	
 	
 }
-
-
-
-
+//________________________________________________________________________
 void Scenario::UpdateParc()
 {
 
@@ -749,9 +920,7 @@ void Scenario::UpdateParc()
 	fIVTotal = fWaste + fTotalStorage + fTotalCooling + fFuelFabrication + fTotalInReactor;
 	fIVInCycleTotal = fTotalStorage + fTotalCooling + fFuelFabrication + fTotalInReactor;
 }
-
-
-
+//________________________________________________________________________
 void Scenario::ResetQuantity()
 {
 
@@ -763,7 +932,6 @@ void Scenario::ResetQuantity()
 	fIVTotal.Clear();
 
 }
-
 //________________________________________________________________________
 void Scenario::OpenOutputTree()
 {
@@ -791,6 +959,7 @@ void Scenario::OpenOutputTree()
 	INFO <<  "\t ...OK!" << endl;
 
 }
+//________________________________________________________________________
 void Scenario::CloseOutputTree()
 {
 
@@ -853,7 +1022,6 @@ void Scenario::OutAttach()
 
 
 }
-
 //________________________________________________________________________
 void Scenario::Write()
 {
@@ -862,7 +1030,6 @@ void Scenario::Write()
 
 
 }
-
 //________________________________________________________________________
 void Scenario::Print()
 {
-- 
GitLab