SERIALIZE_DOUBLES allows you to save static double precision data from your user subroutines when Solver is executing a SAVE/ command to be used later when reloading an analysis.
Use
Called By
Any user-written subroutine.
Prerequisite
The user subroutine is being called to serialize data.
Calling Sequence
CALL SERIALIZE_DOUBLES (d_array, n)
Input Argument
d_array | A double-precision array containing the data to be serialized. |
n | An integer variable that specifies the number of values contained in d_array. |
Example
F77:
IF(IFLAG .EQ. 3)THEN
... Make calls to sysfnc and sysary to set up dependencies ...
ELSEIF (IFLAG .EQ. 7)THEN
CALL SERIALIZE_DOUBLES(DP_DATA, N_DP_DATA)
ELSEIF (IFLAG .EQ. 9)THEN
CALL UNSERIALIZE_DOUBLES(DP_DATA, N_DP_DATA)
ENDIF
CXX:
switch(IFLAG){
case 3:
... Make calls to c_sysfnc and c_sysary to set up dependencies ...
case 7:
c_adams_serialize_integers(&d_dataSize, 1);
c_adams_serialize_doubles(d_data, d_dataSize);
break;
case 9:
c_adams_unserialize_integers(&d_dataSize, 1);
if( d_data )free(d_data);
d_data= (double*) malloc(sizeof(double)*d_dataSize);
c_adams_unserialize_doubles(d_data, d_dataSize);
break;
}