Index: trunk/Cosmo/SimLSS/cmvtstblack.cc
===================================================================
--- trunk/Cosmo/SimLSS/cmvtstblack.cc	(revision 3248)
+++ trunk/Cosmo/SimLSS/cmvtstblack.cc	(revision 3347)
@@ -22,32 +22,44 @@
   //{compute_xroot(); return -41;}
  double T = 2.718, nutest=-1.;
- unsigned short deriv = 0;
+ unsigned short funcderiv = 0;
  double x0;
 
  if(narg>1) sscanf(arg[1],"%lf,%lf",&T,&nutest);
  if(T<=0.) T = 2.718;
- if(narg>2) sscanf(arg[2],"%hu",&deriv);
- if(deriv!=0) deriv = 1;
-
- cout<<"Temperature "<<T<<" K , deriv="<<deriv<<endl;
+ if(narg>2) sscanf(arg[2],"%hu",&funcderiv);
+ PlanckSpectra::SpectraFunc deriv = (funcderiv==0) ? PlanckSpectra::VALUE : PlanckSpectra::DERIV;
+
+ cout<<"Temperature "<<T<<" K , deriv="<<(int)deriv<<endl;
 
  //--------------------------------- Radiance Frequence
  // frequence planck radiance W/..
  PlanckSpectra pradf(T);
- pradf.SetDeriv(deriv); pradf.SetVar(0);
- pradf.SetApprox(0); pradf.SetTypSpectra(0); pradf.SetUnitOut(0);
- PlanckSpectra phpradf(pradf); phpradf.SetUnitOut(1);
+ pradf.SetSpectraFunc(deriv);
+ pradf.SetSpectraVar(PlanckSpectra::NU);
+ pradf.SetSpectraApprox(PlanckSpectra::PLANCK);
+ pradf.SetSpectraUnit(PlanckSpectra::ANGSFLUX);
+ pradf.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phpradf(pradf);
+ phpradf.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // frequence rayleigh radiance W/..
  PlanckSpectra rradf(T);
- rradf.SetDeriv(deriv); rradf.SetVar(0);
- rradf.SetApprox(1); rradf.SetTypSpectra(0); rradf.SetUnitOut(0);
- PlanckSpectra phrradf(rradf); phrradf.SetUnitOut(1);
+ rradf.SetSpectraFunc(deriv);
+ rradf.SetSpectraVar(PlanckSpectra::NU);
+ rradf.SetSpectraApprox(PlanckSpectra::RAYLEIGH);
+ rradf.SetSpectraUnit(PlanckSpectra::ANGSFLUX);
+ rradf.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phrradf(rradf);
+ phrradf.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // frequence wien radiance W/..
  PlanckSpectra wradf(T);
- wradf.SetDeriv(deriv); wradf.SetVar(0);
- wradf.SetApprox(2); wradf.SetTypSpectra(0); wradf.SetUnitOut(0);
- PlanckSpectra phwradf(wradf); phwradf.SetUnitOut(1);
+ wradf.SetSpectraFunc(deriv);
+ wradf.SetSpectraVar(PlanckSpectra::NU);
+ wradf.SetSpectraApprox(PlanckSpectra::WIEN);
+ wradf.SetSpectraUnit(PlanckSpectra::ANGSFLUX);
+ wradf.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phwradf(wradf);
+ phwradf.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // Check
@@ -61,57 +73,93 @@
  // frequence planck density W/..
  PlanckSpectra pdensf(T);
- pdensf.SetDeriv(deriv); pdensf.SetVar(0);
- pdensf.SetApprox(0); pdensf.SetTypSpectra(2); pdensf.SetUnitOut(0);
- PlanckSpectra phpdensf(pdensf); phpdensf.SetUnitOut(1);
+ pdensf.SetSpectraFunc(deriv);
+ pdensf.SetSpectraVar(PlanckSpectra::NU);
+ pdensf.SetSpectraApprox(PlanckSpectra::PLANCK);
+ pdensf.SetSpectraUnit(PlanckSpectra::DENSENERG);
+ pdensf.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phpdensf(pdensf);
+ phpdensf.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // frequence rayleigh density W/..
  PlanckSpectra rdensf(T);
- rdensf.SetDeriv(deriv); rdensf.SetVar(0);
- rdensf.SetApprox(1); rdensf.SetTypSpectra(2); rdensf.SetUnitOut(0);
- PlanckSpectra phrdensf(rdensf); phrdensf.SetUnitOut(1);
+ rdensf.SetSpectraFunc(deriv);
+ rdensf.SetSpectraVar(PlanckSpectra::NU);
+ rdensf.SetSpectraApprox(PlanckSpectra::RAYLEIGH);
+ rdensf.SetSpectraUnit(PlanckSpectra::DENSENERG);
+ rdensf.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phrdensf(rdensf);
+ phrdensf.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // frequence wien density W/..
  PlanckSpectra wdensf(T);
- wdensf.SetDeriv(deriv); wdensf.SetVar(0);
- wdensf.SetApprox(2); wdensf.SetTypSpectra(2); wdensf.SetUnitOut(0);
- PlanckSpectra phwdensf(wdensf); phwdensf.SetUnitOut(1);
+ wdensf.SetSpectraFunc(deriv);
+ wdensf.SetSpectraVar(PlanckSpectra::NU);
+ wdensf.SetSpectraApprox(PlanckSpectra::WIEN);
+ wdensf.SetSpectraUnit(PlanckSpectra::DENSENERG);
+ wdensf.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phwdensf(wdensf);
+ phwdensf.SetSpectraPower(PlanckSpectra::PHOTON);
 
  //--------------------------------- Radiance Longeur d'onde
  // longueur d'onde planck radiance W/..
  PlanckSpectra pradl(T);
- pradl.SetDeriv(deriv); pradl.SetVar(1);
- pradl.SetApprox(0); pradl.SetTypSpectra(0); pradl.SetUnitOut(0);
- PlanckSpectra phpradl(pradl); phpradl.SetUnitOut(1);
+ pradl.SetSpectraFunc(deriv);
+ pradl.SetSpectraVar(PlanckSpectra::LAMBDA);
+ pradl.SetSpectraApprox(PlanckSpectra::PLANCK);
+ pradl.SetSpectraUnit(PlanckSpectra::ANGSFLUX);
+ pradl.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phpradl(pradl);
+ phpradl.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // longueur d'onde rayleigh radiance W/..
  PlanckSpectra rradl(T);
- rradl.SetDeriv(deriv); rradl.SetVar(1);
- rradl.SetApprox(1); rradl.SetTypSpectra(0); rradl.SetUnitOut(0);
- PlanckSpectra phrradl(rradl); phrradl.SetUnitOut(1);
+ rradl.SetSpectraFunc(deriv);
+ rradl.SetSpectraVar(PlanckSpectra::LAMBDA);
+ rradl.SetSpectraApprox(PlanckSpectra::RAYLEIGH);
+ rradl.SetSpectraUnit(PlanckSpectra::ANGSFLUX);
+ rradl.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phrradl(rradl);
+ phrradl.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // longueur d'onde wien radiance W/..
  PlanckSpectra wradl(T);
- wradl.SetDeriv(deriv); wradl.SetVar(1);
- wradl.SetApprox(2); wradl.SetTypSpectra(0); wradl.SetUnitOut(0);
- PlanckSpectra phwradl(wradl); phwradl.SetUnitOut(1);
+ wradl.SetSpectraFunc(deriv);
+ wradl.SetSpectraVar(PlanckSpectra::LAMBDA);
+ wradl.SetSpectraApprox(PlanckSpectra::WIEN);
+ wradl.SetSpectraUnit(PlanckSpectra::ANGSFLUX);
+ wradl.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phwradl(wradl);
+ phwradl.SetSpectraPower(PlanckSpectra::PHOTON);
 
  //--------------------------------- Densite Longeur d'onde
  // longueur d'onde planck density W/..
  PlanckSpectra pdensl(T);
- pdensl.SetDeriv(deriv); pdensl.SetVar(1);
- pdensl.SetApprox(0); pdensl.SetTypSpectra(2); pdensl.SetUnitOut(0);
- PlanckSpectra phpdensl(pdensl); phpdensl.SetUnitOut(1);
+ pdensl.SetSpectraFunc(deriv);
+ pdensl.SetSpectraVar(PlanckSpectra::LAMBDA);
+ pdensl.SetSpectraApprox(PlanckSpectra::PLANCK);
+ pdensl.SetSpectraUnit(PlanckSpectra::DENSENERG);
+ pdensl.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phpdensl(pdensl);
+ phpdensl.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // longueur d'onde rayleigh density W/..
  PlanckSpectra rdensl(T);
- rdensl.SetDeriv(deriv); rdensl.SetVar(1);
- rdensl.SetApprox(1); rdensl.SetTypSpectra(2); rdensl.SetUnitOut(0);
- PlanckSpectra phrdensl(rdensl); phrdensl.SetUnitOut(1);
+ rdensl.SetSpectraFunc(deriv);
+ rdensl.SetSpectraVar(PlanckSpectra::LAMBDA);
+ rdensl.SetSpectraApprox(PlanckSpectra::RAYLEIGH);
+ rdensl.SetSpectraUnit(PlanckSpectra::DENSENERG);
+ rdensl.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phrdensl(rdensl);
+ phrdensl.SetSpectraPower(PlanckSpectra::PHOTON);
 
  // longueur d'onde wien density W/..
  PlanckSpectra wdensl(T);
- wdensl.SetDeriv(deriv); wdensl.SetVar(1);
- wdensl.SetApprox(2); wdensl.SetTypSpectra(2); wdensl.SetUnitOut(0);
- PlanckSpectra phwdensl(wdensl); phwdensl.SetUnitOut(1);
+ wdensl.SetSpectraFunc(deriv);
+ wdensl.SetSpectraVar(PlanckSpectra::LAMBDA);
+ wdensl.SetSpectraApprox(PlanckSpectra::WIEN);
+ wdensl.SetSpectraUnit(PlanckSpectra::DENSENERG);
+ wdensl.SetSpectraPower(PlanckSpectra::POWER);
+ PlanckSpectra phwdensl(wdensl);
+ phwdensl.SetSpectraPower(PlanckSpectra::PHOTON);
 
  //--------------------------------- Le maximum des spectres de planck
