procedure procedure_identifier; declaration_part begin statement_part end;
or with a parameter list:
procedure procedure_identifier (parameter_list); declaration_part begin statement_part end;
A procedure is quite like a sub-program: The declaration_part consists of label, constant, type, variable or subroutine declarations in free order. The statement_part consists of a sequence of statements. If parameter_list is specified, parameters can be passed to the procedure and can be used in statement_part. A recursive procedure call is allowed.