!################################################################## !## This program takes 2 numbers (input from keyboard) and operates on them. !## It shows how to use IF statements and Functions. !################################################################## PROGRAM Calculator !## Declare all variables to be used in program, including the function 'add'. IMPLICIT None !This means you have to declare everything (no implicit variables). !Should always use this otherwise it's easy to lose track of variables. REAL num1,num2,answer,add CHARACTER*3 operation !## Input the numbers and operation needed: ## print*,'Please input 1st number:' read(5,*)num1 print* print*,'Operation (+-*div)?' read(5,*)operation print* print*,'2nd number?' read(5,*)num2 !## Do the calculation, depending on which operation was asked for: ## if(operation.eq.'+') then !If the stuff in brackets is true, do the next line (otherwise ignore). answer=add(num1,num2) !Calls the Function 'add' which is declared after end of program. endif !Could just use num1+num2 if(operation.eq.'*') then answer=num1*num2 !Not using a function here. endif if(operation.eq.'-') then answer=num1-num2 endif if(operation.eq.'div') then !F77 has a problem with the '/' character so let's use 'div'. answer=num1/num2 endif !## The result is now stored in the variable 'answer' so we can print to screen: ## !## Here we use a particular format 'write(6,100)'. The 6 means to screen and the 100 !## is a format we define below. The 100 in the FORMAT statement should be one !## space in from the left. 'f8.2' means a number with 8 character places (including decimal !## point) and 2 numbers after the decimal point. The 'a4' means a string 4 characters long. print*,'===================================' write(6,100)num1,operation,num2,' = ',answer print*,'===================================' 100 FORMAT(f8.2,a5,f8.2,a4,f9.3) stop END !## End the program before writing the functions. ## !############################################## !## Here is the 'add' function - after the main program. !## when you use 'add(blah,blah)' the computer comes !## down here and does the calculation. It returns the !## value 'add' to the main program. !############################################## REAL function add(x,y) implicit none real x,y add=x+y return end !## Don't forget 'return' and 'end' - it's like a separate litle program. ## !#######################################################