Click to start compilers

Character Handling

      PROGRAM CHARAC
      CHARACTER ALPHAB*34, BETA*40, ITOM*6, X*1
      DATA ALPHAB /'THIS IS A SHORT CHARACTER SEQUENCE'/
 50   PRINT *, ' CONTENTS OF ARRAY = ', ALPHAB
      PRINT *, ' READ IN UP TO SIX CHARACTERS'
      READ (*,100) ITOM
 100  FORMAT(A)
      IF ( ITOM(1:1) .eq. ' ') THEN
      CALL EXIT
      END IF
      BETA = ALPHAB//ITOM
      PRINT *, ' CONCATENATED = ',BETA
      X = '1'
      ALPHAB(1:1) = X
      ALPHAB(30:34) = 'HENRY'
      PRINT *, ' CONTENTS OF FINAL STRING = ',ALPHAB
      GOTO 50
      END

Character Generation

      Program char1
      CHARACTER A(128)*1, STRING*80
      INTEGER B(128)
C23456789012345678901234567890123456789012345678901234567890123456789012
      DATA STRING /'JUST A COLLECTION OF text to see WHAT THE INTEGER EQUIVALENT IS'/
      OPEN (8,FILE='ascii.txt', STATUS='UNKNOWN')
      DO 10 N = 1, 126
      A(N) = CHAR(N)
  10  B(N) = N
      print *, ' These are the ASCII characters 32 - 126'
      WRITE (*,100) (A(J), B(J), J = 32,126)
C Do not print characters 1-31 on the terminal!!!
C You can however edit ASCII.DAT afterwards.
      WRITE (8,100) (A(J), B(J), J = 1,126)
  100 FORMAT (10(1X,A1,':',I3),/)
      print *, 'Now to detect L or e in the character string'
      DO 20 N = 1,80
       IF (STRING(N:N).EQ.'L' .OR. STRING(N:N) .EQ. 'e') THEN
       print *, ' L or e detected at location ', N
       ENDIF
  20  CONTINUE
      END

Formatted Input and Output

      PROGRAM READING
      INTEGER A(10)
      REAL    L(10)
  5   WRITE (*,*) ' Read in exactly 10 numbers. To exit from loop, ctrl d'
      READ (*,*, END=10) (A(J), J=1,10)
      WRITE (*,100) (A(J), J = 1,10)
  100 FORMAT (10(I3,1X))
      GOTO 5
  10  WRITE (*,*) ' Data entry terminated with ctrl d'
  30  WRITE (*,*) ' Fixed format (I3) entry. when no more numbers.'
        write (*,*) ' |  |  |  |  |  |  |  |  |  |'
        READ (*,110,END=40,ERR=40) (A(J), J = 1,10)
  110   FORMAT (10(I3))
        WRITE (*,100) (A(J), J = 1,10)
        IF (A(1) .EQ. 0) THEN
        GOTO 50
        ENDIF
        GOTO 30
  40  WRITE (*,*) ' Wrong sort of data '
  50   WRITE (*,*) ' Fixed format (F4.1) entry. when no more numbers.'
        write (*,*) '  |   |   |   |   |   |   |   |   |   |'
        READ (*,120,END=60,ERR=50) (L(J), J = 1,10)
  120   FORMAT (10(F4.1))
        WRITE (*,130) (L(J), J = 1,10)
  130   FORMAT (10(F4.1,1X))
        IF (L(1) .EQ. 0) THEN
        CALL EXIT
        ENDIF
        GOTO 50
   60   CALL EXIT
      END

Intrinsic Functions

             program roots
C<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>
C Print out first k square roots
C This program illustrates the use of intrinsic functions to evaluate
C numbers
C<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>
      print *, ' Enter number of square roots to be evaluated'
      read *, k
      j  = 1
      do while (j.le. k)
      real = float(j)
      root = sqrt(real)
      strange = alog10(root**3)
      print *, ' Root of ', j, ' is ',root
      print *,'Alog10 of root cubed is ', strange
      j = j + 1
      enddo
      end

On to Last lecture
Copyright (c) B. P. Levitt, H. S. Rzepa and ICSTM Chemistry Department, 1994, 1995.
Return to Index page