71   Numeric temp_c  = surface_temp - 273.15;
 
   72   Numeric temp_cc = temp_c * temp_c;
 
   73   Numeric temp_ccc = temp_cc * temp_c;
 
   75   if (  (temp_c < -5.0)  ||  (temp_c > 100.0)  || 
 
   76         (freq < 10e+9) || (freq > 500e+9) )
 
   80       os << 
"Severe warning from dclamkaouchi: " 
   81         << 
"The accepted temperature range in centigrade is " 
   82         << 
"[-5,100],\nbut a value of " << temp_c 
 
   83         << 
"degree C was found. Also the allowed frequency range is " 
   84         << 
"[10 GHz,500 GHz],\nbut a value of " <<  freq
 
   87       throw runtime_error( os.str() );
 
   90   if (  (freq < 20e+9) || (freq > 200e+9) )
 
   94       os << 
"Warning from dclamkaouchi: " 
   95         << 
"The accepted temperature range in centigrade is " 
   96         << 
"[-5,100],\nbut a value of " << temp_c 
 
   97         << 
"degree C was found. Also the allowed frequency range is " 
   98         << 
"[10 GHz,500 GHz],\nbut a value of " <<  freq
 
   99         << 
" was found."<< surface_wind; 
 
  105       throw runtime_error( os.str() );
 
  109   Numeric tau1 = surface_fastem_constants[0] + surface_fastem_constants[1]* temp_c +  
 
  110     surface_fastem_constants[2] * temp_cc;
 
  112   Numeric tau2 = surface_fastem_constants[3] + surface_fastem_constants[4]* temp_c +  
 
  113     surface_fastem_constants[5] * temp_cc + surface_fastem_constants[6] * temp_ccc; 
 
  116   Numeric del1 = surface_fastem_constants[7] + surface_fastem_constants[8]* temp_c + 
 
  117     surface_fastem_constants[9] * temp_cc + surface_fastem_constants[10] * temp_ccc;
 
  119   Numeric del2 = surface_fastem_constants[11] + surface_fastem_constants[12]* temp_c + 
 
  120     surface_fastem_constants[13] * temp_cc + surface_fastem_constants[14] * temp_ccc;
 
  122   Numeric einf = surface_fastem_constants[17] + surface_fastem_constants[18] * temp_c;
 
  125   Numeric fen = 2.0 * surface_fastem_constants[19] * freq/1e+9 * 0.001;
 
  127   Numeric den1 = 1.0 + fen2 * tau1 * tau1;
 
  128   Numeric den2 = 1.0 + fen2 * tau2 * tau2;
 
  129   Numeric perm_real1 = del1/den1;
 
  130   Numeric perm_real2 = del2/den2;
 
  131   Numeric perm_imag1 = del1 * fen * tau1/den1;
 
  132   Numeric perm_imag2 = del2 * fen * tau2/den2;
 
  133   Numeric perm_real = perm_real1 + perm_real2 + einf;
 
  134   Numeric perm_imag = perm_imag1 + perm_imag2;
 
  136   Complex xperm (perm_real, perm_imag); 
 
  148   Numeric sin_2 = pow(sin_theta, 2);
 
  150   Complex perm1 = sqrt(xperm - sin_2);
 
  151   Complex perm2 = xperm * cos_theta;
 
  153   Complex rhth = (cos_theta - perm1)/(cos_theta + perm1);
 
  154   Complex rvth = (perm2 - perm1)/(perm2 + perm1);
 
  161   Numeric rverts = pow(rvertsr, 2) + pow(rvertsi, 2);
 
  167   Numeric rhorzs = pow(rhorzsr, 2) + pow(rhorzsi, 2);
 
  169   surface_emiss[0] = rverts;
 
  170   surface_emiss[1] = rhorzs;
 
  171   surface_emiss[2] = 0;
 
  172   surface_emiss[3] = 0;