Ignore:
Timestamp:
07/24/12 10:36:19 (13 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 12703

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Params/DoubleMatParam.cpp

    r12330 r12706  
    44
    55/*header files: */
    6 /*{{{1*/
     6/*{{{*/
    77#ifdef HAVE_CONFIG_H
    88        #include <config.h>
     
    2121
    2222/*DoubleMatParam constructors and destructor*/
    23 /*FUNCTION DoubleMatParam::DoubleMatParam(){{{1*/
     23/*FUNCTION DoubleMatParam::DoubleMatParam(){{{*/
    2424DoubleMatParam::DoubleMatParam(){
    2525        return;
    2626}
    2727/*}}}*/
    28 /*FUNCTION DoubleMatParam::DoubleMatParam(int enum_type,IssmDoubleMat value){{{1*/
    29 DoubleMatParam::DoubleMatParam(int in_enum_type,double* in_value, int in_M,int in_N){
     28/*FUNCTION DoubleMatParam::DoubleMatParam(int enum_type,IssmDoubleMat value){{{*/
     29DoubleMatParam::DoubleMatParam(int in_enum_type,IssmDouble* in_value, int in_M,int in_N){
    3030
    3131        enum_type=in_enum_type;
     
    3333        N=in_N;
    3434
    35         value=(double*)xmalloc(M*N*sizeof(double));
    36         memcpy(value,in_value,M*N*sizeof(double));
     35        value=xNew<IssmDouble>(M*N);
     36        xMemCpy<IssmDouble>(value,in_value,M*N);
    3737}
    3838/*}}}*/
    39 /*FUNCTION DoubleMatParam::~DoubleMatParam(){{{1*/
     39/*FUNCTION DoubleMatParam::~DoubleMatParam(){{{*/
    4040DoubleMatParam::~DoubleMatParam(){
    41         xfree((void**)&value);
     41        xDelete<IssmDouble>(value);
    4242        return;
    4343}
     
    4545
    4646/*Object virtual functions definitions:*/
    47 /*FUNCTION DoubleMatParam::Echo {{{1*/
     47/*FUNCTION DoubleMatParam::Echo {{{*/
    4848void DoubleMatParam::Echo(void){
    4949
    50         printf("DoubleMatParam:\n");
    51         printf("   enum: %i (%s)\n",this->enum_type,EnumToStringx(this->enum_type));
    52         printf("   matrix size: %ix%i\n",this->M,this->N);
     50        _printLine_("DoubleMatParam:");
     51        _printLine_("   enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")");
     52        _printLine_("   matrix size: " << this->M << "x" << this->N);
    5353
    5454}
    5555/*}}}*/
    56 /*FUNCTION DoubleMatParam::DeepEcho{{{1*/
     56/*FUNCTION DoubleMatParam::DeepEcho{{{*/
    5757void DoubleMatParam::DeepEcho(void){
    5858
    5959        int i,j;
    6060       
    61         printf("DoubleMatParam:\n");
    62         printf("   enum: %i (%s)\n",this->enum_type,EnumToStringx(this->enum_type));
    63         printf("   matrix size: %ix%i\n",this->M,this->N);
     61        _printLine_("DoubleMatParam:");
     62        _printLine_("   enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")");
     63        _printLine_("   matrix size: " << this->M << "x" << this->N);
    6464        for(i=0;i<this->M;i++){
    6565                for(i=0;i<this->N;i++){
    66                         printf("%i %i %g\n",i,j,*(this->value+N*i+j));
     66                        _printLine_(i << " " << j << " " << *(this->value+N*i+j));
    6767                }
    6868        }
    6969}
    7070/*}}}*/
    71 /*FUNCTION DoubleMatParam::Id{{{1*/
     71/*FUNCTION DoubleMatParam::Id{{{*/
    7272int    DoubleMatParam::Id(void){ return -1; }
    7373/*}}}*/
    74 /*FUNCTION DoubleMatParam::MyRank{{{1*/
     74/*FUNCTION DoubleMatParam::MyRank{{{*/
    7575int    DoubleMatParam::MyRank(void){
    7676        extern int my_rank;
     
    7878}
    7979/*}}}*/
    80 /*FUNCTION DoubleMatParam::ObjectEnum{{{1*/
     80/*FUNCTION DoubleMatParam::ObjectEnum{{{*/
    8181int DoubleMatParam::ObjectEnum(void){
    8282
     
    8585}
    8686/*}}}*/
    87 /*FUNCTION DoubleMatParam::copy{{{1*/
     87/*FUNCTION DoubleMatParam::copy{{{*/
    8888Object* DoubleMatParam::copy() {
    8989       
     
    9494
    9595/*DoubleMatParam virtual functions definitions: */
    96 /*FUNCTION DoubleMatParam::GetParameterValue(double** pdoublearray,int* pM,int* pN){{{1*/
    97 void  DoubleMatParam::GetParameterValue(double** pdoublearray,int* pM,int* pN){
    98         double* output=NULL;
     96/*FUNCTION DoubleMatParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){{{*/
     97void  DoubleMatParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){
     98        IssmDouble* output=NULL;
    9999
    100         output=(double*)xmalloc((int)(M*N*sizeof(double)));
    101         memcpy(output,value,M*N*sizeof(double));
     100        output=xNew<IssmDouble>(M*N);
     101        xMemCpy<IssmDouble>(output,value,M*N);
    102102
    103103        /*Assign output pointers:*/
    104104        if(pM) *pM=M;
    105105        if(pN) *pN=N;
    106         *pdoublearray=output;
     106        *pIssmDoublearray=output;
    107107}
    108108/*}}}*/
    109 /*FUNCTION DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){{{1*/
     109/*FUNCTION DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){{{*/
    110110void  DoubleMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){
    111         _error_("DoubleMat of enum %i (%s) cannot return an array of int",enum_type,EnumToStringx(enum_type));
     111        _error2_("DoubleMat of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an array of int");
    112112}
    113113/*}}}*/
    114 /*FUNCTION DoubleMatParam::GetParameterName{{{1*/
     114/*FUNCTION DoubleMatParam::GetParameterName{{{*/
    115115void DoubleMatParam::GetParameterName(char**pname){
    116116        EnumToStringx(pname,this->enum_type);
    117117}
    118118/*}}}*/
    119 /*FUNCTION DoubleMatParam::SetValue{{{1*/
    120 void  DoubleMatParam::SetValue(double* doublearray,int in_M,int in_N){
     119/*FUNCTION DoubleMatParam::SetValue{{{*/
     120void  DoubleMatParam::SetValue(IssmDouble* IssmDoublearray,int in_M,int in_N){
    121121
    122122        /*avoid leak: */
    123         xfree((void**)&this->value);
     123        xDelete<IssmDouble>(this->value);
    124124
    125         this->value=(double*)xmalloc(in_M*in_N*sizeof(double));
    126         memcpy(this->value,doublearray,in_M*in_N*sizeof(double));
     125        this->value=xNew<IssmDouble>(in_M*in_N);
     126        xMemCpy<IssmDouble>(this->value,IssmDoublearray,in_M*in_N);
    127127
    128128        this->M=in_M;
     
    130130}
    131131/*}}}*/
    132 /*FUNCTION DoubleMatParam::UnitConversion{{{1*/
     132/*FUNCTION DoubleMatParam::UnitConversion{{{*/
    133133void  DoubleMatParam::UnitConversion(int direction_enum){
    134134        ::UnitConversion(this->value,this->M*this->N,direction_enum,this->enum_type);
     
    137137               
    138138/*diverse: */
    139 /*FUNCTION DoubleMatParam::GetPointer{{{1*/
    140 double* DoubleMatParam::GetPointer(void){
     139/*FUNCTION DoubleMatParam::GetPointer{{{*/
     140IssmDouble* DoubleMatParam::GetPointer(void){
    141141        return this->value;
    142142}
Note: See TracChangeset for help on using the changeset viewer.