⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 units.c

📁 有限元分析源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        else if(d->length_expnt == 0 && d->time_expnt == 0 &&                 d->mass_expnt   == 0 && d->temp_expnt == 0 ) {	   free((char *)d->units_name);           d->units_name = (char *)NULL;           d->scale_factor = 1.0;#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [b] Check weather the units are LENGTH units       */        if(d->length_expnt != 0 && d->time_expnt == 0 &&            d->mass_expnt   == 0 && d->temp_expnt == 0 ) {           if(d->units_type == SI)              dp = DefaultUnits("m");           else              dp = DefaultUnits("in");	            if(d->length_expnt == 1) {              if(strcmp(d->units_name, dp->units_name) != 0) {                 free((char *) d->units_name);                 d->units_name = SaveString(dp->units_name);                 d->scale_factor = dp->scale_factor;              }              return(d);           }           else if(d->length_expnt < 0) {              d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));              ZeroUnits(d1);              d1->units_type = d->units_type;              if(d->length_expnt == -1) {                 UnitsDivRep(d, d1, dp, NO);              }              else {                 d2 = UnitsPower( dp, ABS(d->length_expnt), NO );                 UnitsDivRep(d, d1, d2, NO);                 free((char *) d2->units_name);                 free((char *) d2);              }              free((char *) d1->units_name);              free((char *) d1);           }           else              UnitsPowerRep(d, dp, d->length_expnt, NO);           free((char *) dp->units_name);           free((char *) dp);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [c] Check weather the units are MASS units           */                 if(d->length_expnt == 0 && d->time_expnt == 0 &&            d->mass_expnt   != 0 && d->temp_expnt == 0 ) {           if(d->units_type == SI)              dp = DefaultUnits("kg");           else              dp = DefaultUnits("lb");	            if(d->mass_expnt == 1) {              if(strcmp(d->units_name, dp->units_name) != 0) {                 free((char *) d->units_name);                 d->units_name = SaveString(dp->units_name);                 d->scale_factor = dp->scale_factor;              }              return(d);           }           else if(d->mass_expnt < 0) {              d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));              ZeroUnits(d1);              d1->units_type = d->units_type;              if(d->mass_expnt == -1) {                 UnitsDivRep(d, d1, dp, NO);              }              else {                 d2 = UnitsPower( dp, ABS(d->mass_expnt), NO );                 UnitsDivRep(d, d1, d2, NO);                 free((char *) d2->units_name);                 free((char *) d2);              }              free((char *) d1->units_name);              free((char *) d1);           }           else              UnitsPowerRep(d, dp, d->mass_expnt, NO);           free((char *) dp->units_name);           free((char *) dp);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [d] Check weather the units are TIME units           */        if(d->length_expnt == 0 && d->time_expnt != 0 &&            d->mass_expnt   == 0 && d->temp_expnt == 0 ) {           dp = DefaultUnits("sec");           if(d->time_expnt == 1) {              if(strcmp(d->units_name, dp->units_name) != 0) {                 free((char *) d->units_name);                 d->units_name = SaveString(dp->units_name);                 d->scale_factor = dp->scale_factor;              }              return(d);           }           else if(d->time_expnt < 0) {              d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));              ZeroUnits(d1);              d1->units_type = SI_US;              if(d->time_expnt == -1) {                 UnitsDivRep(d, d1, dp, NO);              }              else {                 d2 = UnitsPower( dp, ABS(d->time_expnt), NO );                 UnitsDivRep(d, d1, d2, NO);                 free((char *) d2->units_name);                 free((char *) d2);              }              free((char *) d1->units_name);              free((char *) d1);           }           else              UnitsPowerRep(d, dp, d->time_expnt, NO);           free((char *) dp->units_name);           free((char *) dp);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [e] Check weather the units are TEMPERATURE units    */        if(d->length_expnt == 0 && d->time_expnt == 0 &&            d->mass_expnt   == 0 && d->temp_expnt != 0 ) {           if(d->units_type == SI)              dp = DefaultUnits("deg_C");           else              dp = DefaultUnits("deg_F");	            if(d->temp_expnt == 1) {              if(strcmp(d->units_name, dp->units_name) != 0) {                 free((char *) d->units_name);                 d->units_name = SaveString(dp->units_name);                 d->scale_factor = dp->scale_factor;              }              return(d);           }           else if(d->temp_expnt < 0) {              d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));              ZeroUnits(d1);              d1->units_type = d->units_type;              if(d->temp_expnt == -1) {                 UnitsDivRep(d, d1, dp, NO);              }              else {                 d2 = UnitsPower( dp, ABS(d->temp_expnt), NO );                 UnitsDivRep(d, d1, d2, NO);                 free((char *) d2->units_name);                 free((char *) d2);              }              free((char *) d1->units_name);              free((char *) d1);           }           else              UnitsPowerRep(d, dp, d->temp_expnt, NO);           free((char *) dp->units_name);           free((char *) dp);           return(d);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif        }  /* [f] Check weather the units are only two units related   */  /* [f.1] Check weather the units are Length and Mass related   */        else if(d->length_expnt != 0 && d->time_expnt == 0 &&                 d->mass_expnt   != 0 && d->temp_expnt == 0 ) {           if(d->units_type == SI) {              dp1 = DefaultUnits("m");              dp2 = DefaultUnits("kg");           }           else {              dp1 = DefaultUnits("in");              dp2 = DefaultUnits("lb");           }           if(ABS(d->length_expnt) == 1) {              d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d1,dp1);           }           else              d1 = UnitsPower( dp1, ABS(d->length_expnt), NO );           if(ABS(d->mass_expnt) == 1) {              d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d2,dp2);           }           else              d2 = UnitsPower( dp2, ABS(d->mass_expnt), NO );           if(d->length_expnt > 0) {               if(d->mass_expnt > 0)                  UnitsMultRep(d, d1, d2);	                else                  UnitsDivRep(d, d1, d2, NO);	            }           else if(d->mass_expnt > 0) {               UnitsDivRep(d, d2, d1, NO);	            }           else {               dd1 = UnitsPower( dp1, d->length_expnt, NO );               dd2 = UnitsPower( dp2, d->mass_expnt, NO );               UnitsMultRep(d, dd1, dd2);	                free((char *) dd1->units_name);               free((char *) dd1);               free((char *) dd2->units_name);               free((char *) dd2);           }           free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);           free((char *) dp1->units_name);           free((char *) dp1);           free((char *) dp2->units_name);           free((char *) dp2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.2] Check weather the units are Length and Time related   */        else if(d->length_expnt != 0 && d->time_expnt != 0 &&                 d->mass_expnt   == 0 && d->temp_expnt == 0 ) {           if(d->units_type == SI) {              dp1 = DefaultUnits("m");              dp2 = DefaultUnits("sec");           }           else {              dp1 = DefaultUnits("in");              dp2 = DefaultUnits("sec");           }           if(ABS(d->length_expnt) == 1) {              d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d1,dp1);           }           else              d1 = UnitsPower( dp1, ABS(d->length_expnt), NO );           if(ABS(d->time_expnt) == 1) {              d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d2,dp2);           }           else              d2 = UnitsPower( dp2, ABS(d->time_expnt), NO );           if(d->length_expnt > 0) {               if(d->time_expnt > 0)                  UnitsMultRep(d, d1, d2);	                else                  UnitsDivRep(d, d1, d2, NO);	            }           else if(d->time_expnt > 0) {               UnitsDivRep(d, d2, d1, NO);	            }           else {               dd1 = UnitsPower( dp1, d->length_expnt, NO );               dd2 = UnitsPower( dp2, d->time_expnt, NO );               UnitsMultRep(d, dd1, dd2);	                free((char *) dd1->units_name);               free((char *) dd1);               free((char *) dd2->units_name);               free((char *) dd2);           }           free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);           free((char *) dp1->units_name);           free((char *) dp1);           free((char *) dp2->units_name);           free((char *) dp2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.3] Check weather the units are Length and Temperature related   */        else if(d->length_expnt != 0 && d->time_expnt == 0 &&                 d->mass_expnt   == 0 && d->temp_expnt != 0 ) {           if(d->units_type == SI) {              dp1 = DefaultUnits("m");              dp2 = DefaultUnits("deg_C");           }           else {              dp1 = DefaultUnits("in");              dp2 = DefaultUnits("deg_F");           }           if(ABS(d->length_expnt) == 1) {              d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d1,dp1);           }           else              d1 = UnitsPower( dp1, ABS(d->length_expnt), NO );           if(ABS(d->temp_expnt) == 1) {              d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d2,dp2);           }           else              d2 = UnitsPower( dp2, ABS(d->temp_expnt), NO );           if(d->length_expnt > 0) {               if(d->temp_expnt > 0)                  UnitsMultRep(d, d1, d2);	                else                  UnitsDivRep(d, d1, d2, NO);	            }           else if(d->temp_expnt > 0) {               UnitsDivRep(d, d2, d1, NO);	            }           else {               dd1 = UnitsPower( dp1, d->length_expnt, NO );               dd2 = UnitsPower( dp2, d->temp_expnt, NO );               UnitsMultRep(d, dd1, dd2);	                free((char *) dd1->units_name);               free((char *) dd1);               free((char *) dd2->units_name);               free((char *) dd2);           }           free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);           free((char *) dp1->units_name);           free((char *) dp1);           free((char *) dp2->units_name);           free((char *) dp2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.4] Check weather the units are Time and Mass related   */  /* [f.4.a] Check weather the units are FORCE/LENGTH units    */        else if(d->length_expnt == 0 && d->time_expnt == -2 &&                d->mass_expnt   == 1 && d->temp_expnt ==  0 ) {           if(d->units_type == SI){              d1 = DefaultUnits("N");              d2 = DefaultUnits("m");           }           else{              d1 = DefaultUnits("lbf");              d2 = DefaultUnits("in");           }           UnitsDivRep(d, d1, d2, NO);	            free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.4] Check weather the units are Time and Mass related   */  /* [f.4.b] Check weather the units are LENGTH/FORCE units    */        else if(d->length_expnt ==  0 && d->time_expnt == 2 &&                d->mass_expnt   == -1 && d->temp_expnt == 0 ) {           if(d->units_type == SI){              d1 = DefaultUnits("m");              d2 = DefaultUnits("N");           }           else{              d1 = DefaultUnits("in");              d2 = DefaultUnits("lbf");           }           UnitsDivRep(d, d1, d2, NO);	            free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.4.c] Check weather the units are Time and Mass related   */        else if(d->length_expnt == 0 && d->time_expnt != 0 &&                 d->mass_expnt   != 0 && d->temp_expnt == 0 ) {           if(d->units_type == SI) {              dp1 = DefaultUnits("sec");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -