FUNCTION PATHLENGTH(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. This is then converted to C degrees and then to arcseconds. Final output is in arcseconds. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT NONE external KP_GETINT, KP_INDX LOGICAL HIT REAL*4 PATHLENGTH INTEGER KP_INDX INTEGER IRI,IC1,IC2,IC2new,IC1ABS,IC2ABS,IS1,IS2,IS REAL*4 POUT(*) 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) PATHLENGTH=0.0 c print*, 'path length ' , iri, is1, is2 DO IS=IS1,IS2 PATHLENGTH=PATHLENGTH+POUT(LSRL+IS-1) ENDDO RETURN END