Extern method

hi i have written a code like this

class A
extern function void calculate_partitions;
/////
somecode
////

endclass

function void A::calculate_partitions;
output int start_gb,end_gb,start_mb,end_mb,start_kb,end_kb;
endfunction
///////////////////////////

this code is showing a compilation error like Extern method ‘calculate_partitions’ declares argument ‘start_gb’ not found in prototype.

what is wrong with this style of coding.i read that output or input ports can be declared like this

In reply to pawan:

The extern prototype requires Verilog-2001 or what is now called ANSI-style argument declarations that match the arguments of the external declaration. You are free to use either ansi- or non-ansi style ports, but why not make them the same.

class A
extern function void calculate_partitions( 
   output int start_gb,end_gb,start_mb,end_mb,start_kb,end_kb
);
/////
somecode
////

endclass

function void A::calculate_partitions(
   output int start_gb,end_gb,start_mb,end_mb,start_kb,end_kb
)
endfunction