If you are using a late version of CR you can use a shared variable. If you are using 6 or earlier you will use a similar method but will need to include an additional .dll with distribution. When using a shared variable you need to declare it and initialize it. You can do this in the report header and/or in group headers. To initialize create a formula field and name it Reset or something. In the editor type:
WhilePrintingRecords;
Shared NumberVar MyNumber;
MyNumber := 0;
CR is picky about syntax. When it checks, drag it to the report and/or group header.
To add the subreport total to your variable edit your subreport, create a new formula field and in the editor type
WhilePrintingRecords;
Shared NumberVar MyNumber;
MyNumber := MyNumber + {name of your subreport total field}
Drag this field to the same section that your total field appears in in the subreport.
To display this value back in the main report, again create a new formula field in the main report and name it DisplayTotal or something. In the editor type:
WhilePrintingRecords;
SharedNumberVar MyNumber;
MyNumber;
Drag it to the section you want it to appear in.