FUNCTION REFRACTION(IRI,IC1,IC2,POUT) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C GETREFR sums the segment refraction angles over the full limbpath to C get total refraction angle in radians. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT NONE external KP_INITA, KP_GETINT, KP_INDX LOGICAL HIT REAL*8 REFRACTION INTEGER KP_INDX INTEGER IRI,IC1,IC2,IC2new,IC1ABS,IC2ABS,IS1,IS2,IS REAL*4 POUT(*) c REAL*8 RTOD,DTOAS c PARAMETER(RTOD=57.29578D0,DTOAS=3600.0D0) INTEGER LISCP,LIELP,LNLP,LLEGA,LREFRAC,LSRL,LPI,LPMW,LTMW, &LUM,LUM1,LUM2,LUP,LUP1,LUP2,LTE,LTPE,LGANG,LHIT,LDN,LRFR,LRREF, &LSH,LSHI,LTHK,LRT,LRA2 COMMON/KP_LOCPT/LISCP,LIELP,LNLP,LLEGA,LREFRAC,LSRL,LPI,LPMW,LTMW, &LUM,LUM1,LUM2,LUP,LUP1,LUP2,LTE,LTPE,LGANG,LHIT,LDN,LRFR,LRREF, &LSH,LSHI,LTHK,LRT,LRA2 CALL KP_GETINT(POUT(LHIT+IRI-1),1,HIT) IC2new=IC2 IF(HIT) IC2new=-IRI IC1ABS=ABS(IC1) IC2ABS=ABS(IC2new) IS1=KP_INDX(IC1ABS,IRI,IC1,1) IS2=KP_INDX(IC2ABS,IRI,IC2new,1) REFRACTION=0.0D0 DO IS=IS1,IS2 REFRACTION=REFRACTION+DBLE(POUT(LREFRAC+IS-1)) ENDDO c REFRACTION=REFRACTION*RTOD c REFRACTION=REFRACTION*DTOAS RETURN END