************************************************************************ ************************************************************************ ************************************************************************ BLOCK DATA COSANG C initialises common blocks used by INICOS, ANGSIZ and related C routines C Code written by Phillip Helbig, Hamburg Observatory, Sep 1995. ************************************************************************ ************************************************************************ C declaration of variables in common blocks C the usual cosmological variables DOUBLE PRECISION LAMBDA, OMEGA, ETA, K COMMON /COSMOL/ LAMBDA, OMEGA, ETA, K C internal names for other parameter list variables and internal C stuff; see INICOS INTEGER ERROR, WMTYPE DOUBLE PRECISION ZMAX LOGICAL NOTYET, VARETA, DEBUG, MAXZ, BOUNCE COMMON /ANGINI/ ZMAX, ERROR, WMTYPE, $ NOTYET, VARETA, DEBUG, MAXZ, BOUNCE C a CHOICE value < 0 indicates that the dependence of ETA on Z is C different in the phases of expansion and contraction in a bounce C model. INTEGER CHOICE COMMON /WHICH/ CHOICE C to allow computation in the Eddington model, if desired LOGICAL RISK COMMON /ARTHUR/ RISK C sometimes ANGSIZ could be called with a Z which is smaller than C ZMAX but large enough for numerical problems. DOUBLE PRECISION ZZREAL COMMON /FIX/ ZZREAL C save SAVE /COSMOL/, /ANGINI/, /WHICH/, /ARTHUR/, /FIX/ ************************************************************************ ************************************************************************ C compile-time initialisation of common block variables DOUBLE PRECISION DUMMY, IDUMMY C Could be any values, really, in most cases, since most are set to C the values passed to INICOS or to values calculated by INICOS C before they are used (all of these but K are returned to the C calling routine with other names). Some strange values, however, C might help in troubleshooting, though this original implementation C in now way depends on this. The exceptions are a) NOTYET, which C must be initialised to .TRUE.---this value should also make C troubleshooting with the other LOGICAL values easier as well--- C b) CHOICE, which we initialize to 0, mainly to avoid a negative C value, which means that the dependence of ETA on Z is different C during the expanding and contracting phases of a bounce model C (if CHOICE is negative, 4 instead of 2 distances are calculated C by BOUNCE---this should only be done if the user specifically C requests it, by setting CHOICE to a negative value) and c) RISK, C which is initialised to .FALSE. The user can declare the COMMON C block ARTHUR in the calling routine and set RISK to .TRUE., in C order to make calculations in the Eddington model. PARAMETER (DUMMY=-3.473954D-11, IDUMMY=-2222) DATA LAMBDA, OMEGA, ETA, K /4*DUMMY/ DATA ERROR, WMTYPE, ZMAX /-1, IDUMMY, DUMMY/, $ NOTYET, VARETA, DEBUG, MAXZ, BOUNCE /5*.TRUE./ DATA CHOICE /0/ DATA RISK /.FALSE./ DATA ZZREAL /DUMMY/ ************************************************************************ ************************************************************************ END