if y lt 0 then begin
    t=2
    txt='Negative'
  endif
   if y lt 0 then begin
    t=2
    txt='Negative'
  endif else begin
    t=3 
    txt='Non-negative'
  endelse
  
  
  for ix=0L, n, 10 do begin
    x(j) = xx(ix)
    j = j+1
    print,ix
  endfor 
  A for loop may be executed 0 times if the loop variable starts beyond the loop limit.
  while not eof(lun) do begin
    readf,lun,txt
    print,txt
  endwhile
 
  repeat begin
    readf, lun, x
    x = x-c
  endrep until x le 0
  
    case expression of
expression:    statement
. . .
expression:    statement
else:          statement
           endcase 
       case animal of
'cat':   print,'meow'
'dog':   print,'arf arf'
'bird':  print,'tweet tweet'
else:    print,'??'
       endcase
  
       case t>0<2 of
0:       begin
           txt = 'red'
           err = 0
         end
1:       begin
           txt = 'green'
           err = 0
         end
2:       begin
           txt = 'blue'
           err = 1
         end
       endcase
         . . .
loop:
       . . .
       goto, loop
  
       . . .
       goto, err
       . . .
err:   print,' Error ...'
       . . .  
  
  begin
    statement 1
    . . .
    statement n
  end
  
name is the name of the common block. Variables are matched by position so need not have the same name in each routine.
Several routines may use a common to share status values. In such cases it is useful to store the common in a separate file and include it in each routine (@filename where @ is in column 1). This way only a single copy of the common need be maintained.
A good way to name commons is to use the main routine name followed by _com, like xkodak_com. This helps prevent the accidental use of the same name for diffrent commons.
name is the name of the procedure.
Example calls to the above procedures:
test, 2, 3, out
compute, x, y, z, /flag
name is the name of the function.
Example calls to the above procedures:
a = test(2, 3, 5)
t = compute(x, y, z, /flag)