/*AnuUnit produce continuum energy in arbitrary units */ #include "cddefines.h" #include #include "physconst.h" #include "pnunit.h" #include "rfield.h" #include "anuunit.h" double AnuUnit(long int ip) { double AnuUnit_v; # ifdef DEBUG_FUN fputs( "<+>AnuUnit()\n", debug_fp ); # endif if( strcmp(pnunit.chConPunEnr[pnunit.ipConPunEnr],"ryd ") == 0 ) { /* energy in Ryd */ AnuUnit_v = rfield.AnuOrg[ip-1]; } else if( strcmp(pnunit.chConPunEnr[pnunit.ipConPunEnr],"micr") == 0 ) { /* wavelength in microns */ AnuUnit_v = RYDLAM/rfield.AnuOrg[ip-1]*1e-4; } else if( strcmp(pnunit.chConPunEnr[pnunit.ipConPunEnr]," kev") == 0 ) { /* energy in keV */ AnuUnit_v = rfield.AnuOrg[ip-1]*EVRYD*1.e-3; } else if( strcmp(pnunit.chConPunEnr[pnunit.ipConPunEnr]," ev ") == 0 ) { /* energy in eV */ AnuUnit_v = rfield.AnuOrg[ip-1]*EVRYD; } else if( strcmp(pnunit.chConPunEnr[pnunit.ipConPunEnr],"angs") == 0 ) { /* wavelength in Angstroms */ AnuUnit_v = RYDLAM/rfield.AnuOrg[ip-1]; } else { fprintf( ioQQQ, " insane units in AnuUnit =%4.4s\n", pnunit.chConPunEnr[pnunit.ipConPunEnr] ); puts( "[Stop in AnuUnit]" ); exit(1); } # ifdef DEBUG_FUN fputs( " <->AnuUnit()\n", debug_fp ); # endif return( AnuUnit_v ); }