C+ C NAME: C smei_skyd_node2skyloc C PURPOSE: C Drop node on skymap (equatorial or polar maps) C CALLING SEQUENCE: subroutine smei_skyd_node2skyloc(level,node_id,kp,ix,jy) C INPUTS: C node_i integer C level integer C node_id integer C OUTPUTS: C kp integer kp=0: equatorial map C kp=1: north pole map C kp=2: south pole map C ix integer array index in 1st dim C jy integer array index in 2nd dim C (ix,jy) is the array index into C a hires skymap array C INCLUDE: include 'smei_skyd_dim.h' C SEE ALSO: C smei_skyd_combine C PROCEDURE: C MODIFICATION HISTORY: C JUN-2011, Paul Hick (UCSD/CASS; pphick@ucsd.edu) C Extracted from smei_skyd_node2sky C- integer level integer node_id !integer kp ! Are declared in smei_skyd_fnc.h !integer ix !integer jy include 'smei_skyd_fnc.h' i = level*level n_eq = i*SKYD__N_EQ n_pl = i*SKYD__N_PL ip = node_id if (ip .le. n_eq) then ! Bin from equatorial map kp = 0 ! 0 for rectangular equatorial map i_eq = level*SKYD__NXEQ ix = 1+mod(ip-1,i_eq) ! Column index jy = 1+(ip-1)/i_eq ! Row index ix = nint( origin(1, 0)+(ix-origin(level, 0))/level ) jy = nint( origin(1,SKYD__NYEQ)+(jy-origin(level,SKYD__NYEQ))/level ) else ! Bin from one of the polar maps ip = ip-n_eq kp = 1+(ip-1)/n_pl ! 1 for North; 2 for South ip = 1+mod(ip-1,n_pl) ! Linear array index i_pl = level*SKYD__NXPL ix = 1+mod(ip-1,i_pl) ! Column index jy = 1+(ip-1)/i_pl ! Row index ix = nint( origin(1,SKYD__NXPL)+(ix-origin(level,SKYD__NXPL))/level ) jy = nint( origin(1,SKYD__NYPL)+(jy-origin(level,SKYD__NYPL))/level ) end if return end