    Program x02ajfe

!     X02AJF Example Program Text

!     Mark 24 Release. NAG Copyright 2012.

!     .. Use Statements ..
      Use nag_library, Only: nag_wp, x02ahf, x02ajf, x02akf, x02alf, x02amf,   &
                             x02anf, x02bbf, x02bef, x02bhf, x02bjf, x02bkf,   &
                             x02blf
!     .. Implicit None Statement ..
      Implicit None
!     .. Parameters ..
      Integer, Parameter               :: nout = 6
!     .. Local Scalars ..
      Real (Kind=nag_wp)               :: largest_arg, largest_pos, machpr,    &
                                          safe_complex, safe_real, smallest_pos
      Integer                          :: largest_pos_int, model_b,            &
                                          model_emax, model_emin, model_p, prec
!     .. Executable Statements ..
      Write (nout,*) 'X02AJF Example Program Results'
      Write (nout,*)
      Write (nout,*) '(results are machine-dependent)'
      Write (nout,*)
      Write (nout,*) 'The basic parameters of the model'
      Write (nout,*)
      model_b = x02bhf()
      Write (nout,99999) ' X02BHF = ', model_b, '  (the model parameter B)'
      model_p = x02bjf()
      Write (nout,99999) ' X02BJF = ', model_p, '  (the model parameter P)'
      model_emin = x02bkf()
      Write (nout,99999) ' X02BKF = ', model_emin, &
        '  (the model parameter EMIN)'
      model_emax = x02blf()
      Write (nout,99999) ' X02BLF = ', model_emax, &
        '  (the model parameter EMAX)'
      Write (nout,*)
      Write (nout,*) 'Derived parameters of floating-point arithmetic'
      Write (nout,*)
      machpr = x02ajf()
      Write (nout,99998) ' X02AJF = ', machpr, '  (the machine precision)'
      smallest_pos = x02akf()
      Write (nout,99998) ' X02AKF = ', smallest_pos, &
        '  (the smallest positive model number)'
      largest_pos = x02alf()
      Write (nout,99998) ' X02ALF = ', largest_pos, &
        '  (the largest positive model number)'
      safe_real = x02amf()
      Write (nout,99998) ' X02AMF = ', safe_real, &
        '  (the real safe range parameter)'
      safe_complex = x02anf()
      Write (nout,99998) ' X02ANF = ', safe_complex, &
        '  (the complex safe range parameter)'
      Write (nout,*)
      Write (nout,*) &
        'Parameters of other aspects of the computing environment'
      Write (nout,*)
      largest_arg = x02ahf(0.0E0_nag_wp)
      Write (nout,99996) ' X02AHF = ', largest_arg, &
        '  (largest argument for SIN and COS)'
      largest_pos_int = x02bbf(0.0E0_nag_wp)
      Write (nout,99997) ' X02BBF = ', largest_pos_int, &
        '  (largest positive integer)'
      prec = x02bef(0.0E0_nag_wp)
      Write (nout,99997) ' X02BEF = ', prec, '  (precision in decimal digits)'

99999 Format (1X,A,I7,1X,A)
99998 Format (1X,A,1P,E26.18e3,1X,A)
99997 Format (1X,A,I20,1X,A)
99996 Format (1X,A,1P,E20.8e3,1X,A)
    End Program x02ajfe
