MCPcopy Create free account
hub / github.com/NatLabRockies/SAM / dump_variable

Function dump_variable

src/simulation.cpp:616–667  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

614}
615
616static void dump_variable( FILE *fp, ssc_data_t p_data, const char *name )
617{ // .17g to .17g for full double precision.
618 ssc_number_t value;
619 ssc_number_t *p;
620 int len, nr, nc;
621 wxString str_value;
622 double dbl_value;
623 int type = ::ssc_data_query( p_data, name );
624 switch( type )
625 {
626 case SSC_STRING:
627 str_value = wxString::FromUTF8(::ssc_data_get_string( p_data, name ));
628 str_value.Replace("\\", "/" );
629 fprintf(fp, "var( '%s', '%s' );\n", name, (const char*)str_value.c_str() );
630 break;
631 case SSC_NUMBER:
632 ::ssc_data_get_number( p_data, name, &value );
633 dbl_value = (double)value;
634 if ( dbl_value > 1e38 ) dbl_value = 1e38;
635 fprintf(fp, "var( '%s', %.17g );\n", name, dbl_value );
636 break;
637 case SSC_ARRAY:
638 p = ::ssc_data_get_array( p_data, name, &len );
639 fprintf(fp, "var( '%s', [", name);
640 for ( int i=0;i<(len-1);i++ )
641 {
642 dbl_value = (double)p[i];
643 if ( dbl_value > 1e38 ) dbl_value = 1e38;
644 fprintf(fp, " %.17g,", dbl_value );
645 }
646 dbl_value = (double)p[len-1];
647 if ( dbl_value > 1e38 ) dbl_value = 1e38;
648 fprintf(fp, " %.17g ] );\n", dbl_value );
649 break;
650 case SSC_MATRIX:
651 p = ::ssc_data_get_matrix( p_data, name, &nr, &nc );
652 len = nr*nc;
653 fprintf( fp, "var( '%s', \n[ [", name );
654 for (int k=0;k<(len-1);k++)
655 {
656 dbl_value = (double)p[k];
657 if ( dbl_value > 1e38 ) dbl_value = 1e38;
658 if ( (k+1)%nc == 0 )
659 fprintf(fp, " %.17g ], \n[", dbl_value);
660 else
661 fprintf(fp, " %.17g,", dbl_value);
662 }
663 dbl_value = (double)p[len-1];
664 if ( dbl_value > 1e38 ) dbl_value = 1e38;
665 fprintf(fp, " %.17g ] ] );\n", dbl_value);
666 }
667}
668
669bool Simulation::WriteDebugFile( const wxString &file, ssc_module_t p_mod, ssc_data_t p_data )
670{

Callers 2

WriteDebugFileMethod · 0.85
Generate_lkMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected