subroutine get_satnode(lat1, lat2, debug, sat_node) c----------------------------------------------------------------------------------- c Description: Calculate satellite node (ascending or descending). c c Input parameters: c lat1 latitude of sub-satellite point for initial point c lat2 latitude of sub-satellite point for second point c debug debug message index c c Output parameters: c sat_node satellite node (1 = ascending node, 2 = descending node, c 0 = invalid latitude) c c Revision history: c 10/10 R. Frey Original version c c Calls None c c----------------------------------------------------------------------------------- IMPLICIT NONE save c----------------------------------------------------------------------------------- c Calling arguments. integer sat_node, debug real lat1, lat2 c Local variables. character*160 errmsg integer status, level real dlat c----------------------------------------------------------------------------------- dlat = 0.0 c Check latitude values. if(lat1 .gt. 90.0 .or. lat1 .lt. -90.0 .or. lat2 .gt. 90.0 .or. * lat2 .lt. -90.0) then c Invalid latitude found. sat_node = 0 level = 2 status = -1 write( errmsg,'('' WARNING - invalid latitude '',2f10.2)') lat1, lat2 call message( 'get_satnode', errmsg, status, level ) c----------------------------------------------------------------------------------- else c Calculate node. dlat = lat1 - lat2 if(dlat .gt. 0.0) then sat_node = 2 else sat_node = 1 end if end if c----------------------------------------------------------------------------------- if(debug .gt. 0) then write(*,'(/,''get_satnode: '')') write(*,'(''Input latitudes: '',2f12.3)') lat1, lat2 write(*,'(''Lat. difference and node index: '',f10.3,i5)') dlat, sat_node end if c----------------------------------------------------------------------------------- return end