*** my corrections to SUBROUTINE UPDATC(IPASC,FLAGMU) C----------------------------------------------------------------------- C UPDAT(ES PARTICLE PARAMETERS IN A) C(URVED ATMOSPHERE) C C IN THE CASE THE HORIZONTAL COMPONENT OF THE TRACK IS TO LONG (> 20KM) C THE PARTICLE TRACK IS CHOPPED IN SEVERAL SHORTER TRACKS. C FOR EACH OF THESE CHOPPED TRACKS SUBR. UPDATE IS CALLED. C THIS SUBROUTINE IS CALLED FROM AAMAIN, BOX3, AND MUTRAC. C ARGUMENTS: C IPASC = 0 TRANSPORT LEADS TO END OF RANGE OF PARTICLE C 1 TRANSPORT LEADS TO OBSERVATION LEVEL C FLAGMU FLAG INDICATING THE TRACKING OF MUONS C C DESIGN : F. SCHROEDER UNI WUPPERTAL C----------------------------------------------------------------------- *** added in the variables section: DOUBLE PRECISION PI2, SINTHE, COSPHI, SINPHI, SINTHENEW, MYSINPHI, * MYCOSPHI, MYPHI, PRICOSPHI, PRISINPHI, PRICOSTH, PRISINTH *** then in the body statement * COSTHENEW = COSTHE*COSDIF - SIGNE*SINDIF*SQRT(1.D0-COSTHE**2) *** is replaced with SINTHE=SQRT(1.D0-COSTHE**2) COSPHI=COS(PHI) SINPHI=SIN(PHI) PRICOSPHI=COS(PRMPAR(4)) PRISINPHI=SIN(PRMPAR(4)) PRICOSTH=COS(PRMPAR(3)) PRISINTH=SIN(PRMPAR(3)) COSTHENEW = MAX(MIN(COSTHE*COSDIF - SIGNE*SINDIF*SINTHE* * (COSPHI*PRICOSPHI+SINPHI*PRISINPHI), 1.D0), -1.D0) SINTHENEW = SQRT(1.D0-COSTHENEW**2) IF ( SINTHENEW.NE.0.D0 ) THEN MYSINPHI=(PRICOSPHI*PRICOSPHI*(COSDIF-1)+1)*SINTHE*COSPHI+ * (PRICOSPHI*PRISINPHI*(COSDIF-1))*SINTHE*SINPHI+ * (PRICOSPHI*SINDIF)*COSTHE MYCOSPHI=(PRISINPHI*PRICOSPHI*(COSDIF-1))*SINTHE*COSPHI+ * (PRISINPHI*PRISINPHI*(COSDIF-1)+1)*SINTHE*SINPHI+ * (PRISINPHI*SINDIF)*COSTHE MYSINPHI = MAX(MIN(MYSINPHI/SINTHENEW, 1.D0), -1.D0) MYCOSPHI = MAX(MIN(MYCOSPHI/SINTHENEW, 1.D0), -1.D0) MYPHI=ACOS(MYCOSPHI) PI2=ACOS(-1.0)*2.D0 IF ( MYSINPHI.LT.0.D0 ) THEN MYPHI=PI2-MYPHI ENDIF IF ( MYPHI.GT.PI2 ) THEN MYPHI=MYPHI-PI2 ENDIF ENDIF *** similar changes can be done in NRANGC, PRANGC, THICKC, ELECTR, PHOTON