diff --git a/src/control.c b/src/control.c index d4dc71098..75d7250d4 100644 --- a/src/control.c +++ b/src/control.c @@ -1013,34 +1013,57 @@ void fsUnitsAngMom(UNITS *units, char **cUnit) { free(cUnitMass); free(cUnitLength); free(cUnitTime); - } void fsUnitsDensity(UNITS *units, char **cUnit) { - char cTmp[OPTLEN]; + char *cUnitMass=NULL,*cUnitLength=NULL; - fsUnitsMass(units->iMass, cUnit); - strcat(cUnit, "/"); - fsUnitsLength(units->iLength, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, "^3"); + // fsUnitsMass(units->iMass, cUnit); + // strcat(cUnit, "/"); + // fsUnitsLength(units->iLength, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, "^3"); + fsUnitsMass(units->iMass, &cUnitMass); + fsUnitsLength(units->iLength, &cUnitLength); + fvFormattedString(cUnit,cUnitMass,"/",cUnitLength,"^3"); + free(cUnitMass); + free(cUnitLength); } void fsUnitsVel(UNITS *units, char **cUnit) { - char cTmp[OPTLEN]; + char *cUnitLength=NULL,*cUnitTime=NULL; - fsUnitsLength(units->iLength, cUnit); - strcat(cUnit, "/"); - fsUnitsTime(units->iTime, cTmp); - strcat(cUnit, cTmp); + // fsUnitsLength(units->iLength, cUnit); + // strcat(cUnit, "/"); + // fsUnitsTime(units->iTime, cTmp); + // strcat(cUnit, cTmp); + fsUnitsLength(units->iLength, &cUnitLength); + fsUnitsTime(units->iTime, &cUnitTime); + fvFormattedString(cUnit,cUnitLength,"/",cUnitTime); + free(cUnitTime); + free(cUnitLength); } void fsUnitsRate(int iType, char **cUnit) { - char cTmp[OPTLEN]; + char *cUnitTime=NULL; - fvFormattedString(&cUnit, "/"); - fsUnitsTime(iType, cTmp); - strcat(cUnit, cTmp); + // fvFormattedString(&cUnit, "/"); + // fsUnitsTime(iType, cTmp); + // strcat(cUnit, cTmp); + fsUnitsTime(iType, &cUnitTime); + fvFormattedString(cUnit,"/",cUnitTime); + free(cUnitTime); +} + +void fsUnitsRateSquared(int iType, char **cUnit) { + char *cUnitTime=NULL; + + // fvFormattedString(&cUnit, "/"); + // fsUnitsTime(iType, cTmp); + // strcat(cUnit, cTmp); + fsUnitsTime(iType, &cUnitTime); + fvFormattedString(cUnit,"/",cUnitTime,"^2"); + free(cUnitTime); } /* double fdUnitsRate(int iTime) { @@ -1049,25 +1072,38 @@ void fsUnitsRate(int iType, char **cUnit) { void fsUnitsAngRate(UNITS *units, char **cUnit) { - char cTmp[OPTLEN]; + char *cUnitAngle=NULL,*cUnitTime=NULL; - fsUnitsAngle(units->iAngle, cUnit); - strcat(cUnit, "/"); - fsUnitsTime(units->iTime, cTmp); - strcat(cUnit, cTmp); + // fsUnitsAngle(units->iAngle, cUnit); + // strcat(cUnit, "/"); + // fsUnitsTime(units->iTime, cTmp); + // strcat(cUnit, cTmp); + fsUnitsAngle(units->iAngle, &cUnitAngle); + fsUnitsTime(units->iTime, &cUnitTime); + fvFormattedString(cUnit,cUnitAngle,"/",cUnitTime); + free(cUnitTime); + free(cUnitAngle); } void fsUnitsEnergy(UNITS *units, char **cUnit) { - char cTmp[OPTLEN]; - - fsUnitsMass(units->iMass, cUnit); - strcat(cUnit, "*"); - fsUnitsLength(units->iLength, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, "^2/"); - fsUnitsTime(units->iTime, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, "^2"); + char *cUnitMass=NULL,*cUnitLength=NULL,*cUnitTime=NULL; + + fsUnitsMass(units->iMass, &cUnitMass); + fsUnitsLength(units->iLength, &cUnitLength); + fsUnitsTime(units->iTime, &cUnitTime); + + // fsUnitsMass(units->iMass, cUnit); + // strcat(cUnit, "*"); + // fsUnitsLength(units->iLength, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, "^2/"); + // fsUnitsTime(units->iTime, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, "^2"); + fvFormattedString(cUnit,cUnitMass,"*",cUnitLength,"^2/",cUnitTime,"^2"); + free(cUnitMass); + free(cUnitLength); + free(cUnitTime); } double fdUnitsEnergy(int iTime, int iMass, int iLength) { @@ -1077,16 +1113,24 @@ double fdUnitsEnergy(int iTime, int iMass, int iLength) { } void fsUnitsPower(UNITS *units, char **cUnit) { - char cTmp[OPTLEN]; - - fsUnitsMass(units->iMass, cUnit); - strcat(cUnit, "*"); - fsUnitsLength(units->iLength, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, "^2/"); - fsUnitsTime(units->iTime, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, "^3"); + char *cUnitMass=NULL,*cUnitLength=NULL,*cUnitTime=NULL; + + fsUnitsMass(units->iMass, &cUnitMass); + fsUnitsLength(units->iLength, &cUnitLength); + fsUnitsTime(units->iTime, &cUnitTime); + + // fsUnitsMass(units->iMass, cUnit); + // strcat(cUnit, "*"); + // fsUnitsLength(units->iLength, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, "^2/"); + // fsUnitsTime(units->iTime, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, "^3"); + fvFormattedString(cUnit,cUnitMass,"*",cUnitLength,"^2/",cUnitTime,"^3"); + free(cUnitMass); + free(cUnitLength); + free(cUnitTime); } double fdUnitsPower(int iTime, int iMass, int iLength) { @@ -1095,16 +1139,21 @@ double fdUnitsPower(int iTime, int iMass, int iLength) { } void fsUnitsEnergyFlux(UNITS *units, char **cUnit) { - char cTmp[OPTLEN]; - - fsUnitsEnergy(units, cUnit); - strcat(cUnit, "/("); - fsUnitsLength(units->iLength, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, "^2*"); - fsUnitsTime(units->iTime, cTmp); - strcat(cUnit, cTmp); - strcat(cUnit, ")"); + char *cUnitMass=NULL,*cUnitLength=NULL,*cUnitTime=NULL; + + fsUnitsMass(units->iMass, &cUnitMass); + fsUnitsLength(units->iLength, &cUnitLength); + fsUnitsTime(units->iTime, &cUnitTime); + + // fsUnitsEnergy(units, cUnit); + // strcat(cUnit, "/("); + // fsUnitsLength(units->iLength, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, "^2*"); + // fsUnitsTime(units->iTime, cTmp); + // strcat(cUnit, cTmp); + // strcat(cUnit, ")"); + fvFormattedString(cUnit,cUnitMass,"/",cUnitTime,"^3"); } double fdUnitsEnergyFlux(int iTime, int iMass, int iLength) { @@ -1198,9 +1247,4 @@ void InfileCopy(INFILE *dest, INFILE *src) { for (iLine = 0; iLine < src->iNumLines; iLine++) { dest->bLineOK[iLine] = src->bLineOK[iLine]; } - - /* PHOTOCHEM fields - strcpy(dest->cSpecies,src->cSpecies); - strcpy(dest->cReactions,src->cReactions); - */ } diff --git a/src/control.h b/src/control.h index beb49f434..d80b8eac8 100644 --- a/src/control.h +++ b/src/control.h @@ -36,6 +36,7 @@ double fdUnitsAngle(int); double fdUnitsPower(int, int, int); double fdUnitsEnergy(int, int, int); double fdUnitsEnergyFlux(int, int, int); +void fsUnitsRateSquared(int, char **); // double fdUnitsRate(int); void fsUnitsLength(int, char**); diff --git a/src/distorb.c b/src/distorb.c index f2a8f22ff..08103523c 100644 --- a/src/distorb.c +++ b/src/distorb.c @@ -1976,7 +1976,7 @@ else if (body[iBody].bGalHabit) { *dTmp = body[iBody].dLongA; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit,output->cNeg); + fvFormattedString(cUnit,output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle,cUnit); diff --git a/src/eqtide.c b/src/eqtide.c index 1a77c2f52..ce531c803 100644 --- a/src/eqtide.c +++ b/src/eqtide.c @@ -613,11 +613,11 @@ void ReadTidePerts(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile) { int iBody, iNumIndices = 0, iNumLines = 0; int *lTmp; - char saTmp[MAXARRAY][OPTLEN]; + char **saTmp; lTmp = malloc(MAXLINES * sizeof(int)); - AddOptionStringArray(files->Infile[iFile].cIn, options->cName, saTmp, + AddOptionStringArray(files->Infile[iFile].cIn, options->cName, &saTmp, &iNumIndices, &iNumLines, lTmp, control->Io.iVerbose); if (lTmp[0] >= 0) { NotPrimaryInput(iFile, options->cName, files->Infile[iFile].cIn, lTmp[0], @@ -2294,7 +2294,7 @@ void WriteBodyDsemiDtEqtide(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit,output->cNeg); + fvFormattedString(cUnit,output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime)/fdUnitsLength(units->iLength); fsUnitsVel(units,cUnit); @@ -2326,7 +2326,7 @@ void WriteBodyDeccDtEqtide(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit,output->cNeg); + fvFormattedString(cUnit,output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime,cUnit); @@ -2461,8 +2461,7 @@ void WriteDMeanMotionDtEqtide(BODY *body, CONTROL *control, OUTPUT *output, fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / fdUnitsLength(units->iLength); - fsUnitsRate(units->iTime, cUnit); - strcat(cUnit, "^2"); + fsUnitsRateSquared(units->iTime, cUnit); } } @@ -2478,7 +2477,7 @@ void WriteDOrbPerDtEqtide(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - fvFormattedString(&cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / fdUnitsLength(units->iLength); fvFormattedString(cUnit, "%s", ""); @@ -2503,7 +2502,7 @@ void WriteDRotPerDtEqtide(BODY *body, CONTROL *control, OUTPUT *output, *dTmp *= output->dNeg; fvFormattedString(cUnit, output->cNeg); } else { - fvFormattedString(&cUnit, ""); + fvFormattedString(cUnit, ""); } } @@ -2526,8 +2525,7 @@ void WriteDRotRateDtEqtide(BODY *body, CONTROL *control, OUTPUT *output, fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) * fdUnitsTime(units->iTime); - fsUnitsRate(units->iTime, cUnit); - strcat(cUnit, "^2"); + fsUnitsRateSquared(units->iTime, cUnit); } } @@ -2833,7 +2831,7 @@ void WriteGammaOrb(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = -1; /* Negative option? */ - strcat(cUnit, "sec"); + fsUnitsTime(units->iTime,cUnit); } void WriteGammaRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2849,7 +2847,7 @@ void WriteGammaRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = -1; /* Negative option? */ - strcat(cUnit, "sec"); + fsUnitsTime(units->iTime,cUnit); } void WriteK2Ocean(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2858,7 +2856,7 @@ void WriteK2Ocean(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dK2Ocean; - fvFormattedString(&cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteK2Env(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2867,7 +2865,7 @@ void WriteK2Env(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dK2Env; - fvFormattedString(&cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteOblTimescaleEqtide(BODY *body, CONTROL *control, OUTPUT *output, @@ -2883,14 +2881,14 @@ void WriteOblTimescaleEqtide(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit,output->cNeg); + fvFormattedString(cUnit,output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsTime(units->iTime,cUnit); } */ *dTmp = -1; - fvFormattedString(&cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteRotTimescaleEqtide(BODY *body, CONTROL *control, OUTPUT *output, @@ -2992,7 +2990,7 @@ void WriteTideLock(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = control->Evolve.bForceEqSpin[iBody]; - strcat(cUnit, ""); + fvFormattedString(cUnit, ""); } void InitializeOutputEqtide(OUTPUT *output, fnWriteOutput fnWrite[]) { diff --git a/src/flare.c b/src/flare.c index c35ddb651..af6f14de1 100644 --- a/src/flare.c +++ b/src/flare.c @@ -1018,7 +1018,7 @@ void WriteLXUVFlareUpper(BODY *body, *dTmp = body[iBody].dLXUVFlareUpper; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -1038,7 +1038,7 @@ void WriteLXUVFlareLower(BODY *body, *dTmp = body[iBody].dLXUVFlareLower; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); diff --git a/src/module.c b/src/module.c index 5eddcdc5c..eadd53006 100644 --- a/src/module.c +++ b/src/module.c @@ -688,11 +688,11 @@ void ReadModules(BODY *body, CONTROL *control, FILES *files, MODULE *module, OPTIONS *options, int iFile) { int iNumIndices = 0, iNumLines = 0, iModule; int *lTmp; - char saTmp[MAXARRAY][OPTLEN]; + char **saTmp; lTmp = malloc(MAXLINES * sizeof(int)); - AddOptionStringArray(files->Infile[iFile].cIn, options->cName, saTmp, + AddOptionStringArray(files->Infile[iFile].cIn, options->cName, &saTmp, &iNumIndices, &iNumLines, lTmp, control->Io.iVerbose); if (lTmp[0] >= 0) { NotPrimaryInput(iFile, options->cName, files->Infile[iFile].cIn, lTmp[0], diff --git a/src/options.c b/src/options.c index 03a7a3ff9..379c4c9da 100644 --- a/src/options.c +++ b/src/options.c @@ -249,15 +249,13 @@ double dNegativeDouble(OPTIONS options, char cFile[], int iVerbose) { unchanged. */ void AddOptionStringArray(char *cFile, char *cOption, - char saInput[MAXARRAY][OPTLEN], int *iNumIndices, + char ***saInput, int *iNumIndices, int *iNumLines, int *iLine, int iVerbose) { char *cLine, cTmp[MAXARRAY][OPTLEN]; int iPos, iWord, bContinue, iNumWords; FILE *fp; - //memset(cLine, '\0', LINE); - - /* iLine=malloc(MAXLINES*sizeof(int)); */ + *saInput = malloc(MAXARRAY*sizeof(char*)); iLine[0] = -1; @@ -276,8 +274,10 @@ void AddOptionStringArray(char *cFile, char *cOption, *iNumLines = 1; for (iWord = 0; iWord < iNumWords - 1; iWord++) { - memset(saInput[iWord], '\0', OPTLEN); - strcpy(saInput[iWord], cTmp[iWord + 1]); + *saInput[iWord] = NULL; + //memset(saInput[iWord], '\0', OPTLEN); + + fvFormattedString(saInput[iWord], cTmp[iWord + 1]); /* Reset cTmp string: If the next time cTmp is filled, the new string is longer than the old, then vestigial characters can remain after a trailing $. */ @@ -295,7 +295,7 @@ void AddOptionStringArray(char *cFile, char *cOption, if (memcmp(cLine, "null", 4)) { GetWords(cLine, cTmp, &iNumWords, &bContinue); for (iWord = 0; iWord < iNumWords; iWord++) { - strcpy(saInput[*iNumIndices + iWord], cTmp[iWord]); + fvFormattedString(saInput[*iNumIndices + iWord], cTmp[iWord]); memset(cTmp[iWord], '\0', OPTLEN); } *iNumIndices += iNumWords; @@ -321,12 +321,12 @@ void AddOptionDoubleArray(char *cFile, char *cOption, double *daInput, int *iNumIndices, int *iNumLines, int *iLine, int iVerbose) { int iIndex; - char cTmp[MAXARRAY][OPTLEN]; + char **saTmp; - AddOptionStringArray(cFile, cOption, cTmp, iNumIndices, iNumLines, iLine, + AddOptionStringArray(cFile, cOption, &saTmp, iNumIndices, iNumLines, iLine, iVerbose); for (iIndex = 0; iIndex < *iNumIndices; iIndex++) { - daInput[iIndex] = atof(cTmp[iIndex]); + daInput[iIndex] = atof(saTmp[iIndex]); } } @@ -1126,11 +1126,11 @@ void ReadBodyFileNames(CONTROL *control, FILES *files, OPTIONS *options, INFILE *infile) { int iIndex, iNumIndices = 0, iNumLines = 0; int *lTmp; - char saTmp[MAXARRAY][OPTLEN]; + char **saTmp; lTmp = malloc(MAXLINES * sizeof(int)); - AddOptionStringArray(infile->cIn, options->cName, saTmp, &iNumIndices, + AddOptionStringArray(infile->cIn, options->cName, &saTmp, &iNumIndices, &iNumLines, lTmp, control->Io.iVerbose); if (lTmp[0] >= 0) { @@ -2662,7 +2662,7 @@ void ReadOutputOrder(FILES *files, MODULE *module, OPTIONS *options, OUTPUT *output, int iFile, int iVerbose) { int i, j, count, iLen, iNumIndices = 0, bNeg[MAXARRAY], ok = 1, iNumGrid = 0; int k, iOut = -1, *lTmp, iCol, jCol; - char saTmp[MAXARRAY][OPTLEN], *cTmp=NULL, **cOption, + char **saTmp, *cTmp=NULL, **cOption, *cOut; int iLen1, iLen2; @@ -2670,7 +2670,7 @@ void ReadOutputOrder(FILES *files, MODULE *module, OPTIONS *options, cOption = malloc(MAXARRAY*sizeof(char*)); AddOptionStringArray(files->Infile[iFile].cIn, options[OPT_OUTPUTORDER].cName, - saTmp, &iNumIndices, &files->Infile[iFile].iNumLines, + &saTmp, &iNumIndices, &files->Infile[iFile].iNumLines, lTmp, iVerbose); if (lTmp[0] >= 0) { @@ -2868,14 +2868,14 @@ void ReadGridOutput(FILES *files, OPTIONS *options, OUTPUT *output, int iFile, int iVerbose) { int i, j, count, iLen, iNumIndices = 0, bNeg[MAXARRAY], ok = 0, iNumGrid = 0; int k, iOut = -1, *lTmp; - char saTmp[MAXARRAY][OPTLEN], *cTmp, **cOption, *cOut; + char **saTmp, *cTmp, **cOption, *cOut; int iLen1, iLen2; lTmp = malloc(MAXLINES * sizeof(int)); cOption = malloc(MAXARRAY*sizeof(char*)); AddOptionStringArray(files->Infile[iFile].cIn, options[OPT_GRIDOUTPUT].cName, - saTmp, &iNumIndices, &files->Infile[iFile].iNumLines, + &saTmp, &iNumIndices, &files->Infile[iFile].iNumLines, lTmp, iVerbose); if (lTmp[0] >= 0) { diff --git a/src/options.h b/src/options.h index f300bd90f..c4a5eb403 100644 --- a/src/options.h +++ b/src/options.h @@ -126,7 +126,7 @@ void ReadOptions(BODY **, CONTROL *, FILES *, MODULE *, OPTIONS *, OUTPUT *, SYSTEM *, UPDATE **, fnReadOption *, char[]); double dNegativeDouble(OPTIONS, char[], int); -void AddOptionStringArray(char[], char[], char[MAXARRAY][OPTLEN], int *, int *, +void AddOptionStringArray(char[], char[], char***, int *, int *, int *, int); void AddOptionDoubleArray(char[], char[], double *, int *, int *, int *, int); void NotPrimaryInput(int, char[], char[], int, int); diff --git a/src/output.c b/src/output.c index 754900e3f..5a4bf4e6a 100644 --- a/src/output.c +++ b/src/output.c @@ -19,7 +19,7 @@ void WriteAge(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dAge; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsTime(units->iTime); fsUnitsTime(units->iTime, cUnit); @@ -35,7 +35,7 @@ void WriteBodyType(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].iBodyType; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } /* @@ -49,7 +49,7 @@ void WriteCOPP(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dEcc * sin(body[iBody].dLongP + body[iBody].dPrecA) * sin(body[iBody].dObliquity); - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } /* Critical Semi-major Axis (Holman & Wiegert, 1999 for P-type circumbinary @@ -75,7 +75,7 @@ void WriteCriticalSemi(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -106,7 +106,7 @@ void WriteDeltaTime(BODY *body, CONTROL *control, OUTPUT *output, } if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsTime(units->iTime); fsUnitsTime(units->iTime, cUnit); @@ -121,7 +121,7 @@ void WriteDensity(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= pow(fdUnitsLength(units->iLength), 3) / fdUnitsMass(units->iMass); fsUnitsDensity(units, cUnit); @@ -138,7 +138,7 @@ void WriteHecc(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = body[iBody].dHecc; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } /************* HABITABLE ZONE LIMITS ***********/ @@ -166,7 +166,7 @@ void WriteHZLimitDryRunaway(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -205,7 +205,7 @@ void WriteHZLimitRecentVenus(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = daHZLimits[0]; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -236,7 +236,7 @@ void WriteHZLimitRunawayGreenhouse(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = daHZLimits[1]; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -266,7 +266,7 @@ void WriteHZLimitMoistGreenhouse(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = daHZLimits[2]; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -296,7 +296,7 @@ void WriteHZLimitMaxGreenhouse(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = daHZLimits[3]; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -326,7 +326,7 @@ void WriteHZLimitEarlyMars(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = daHZLimits[4]; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -349,7 +349,7 @@ void WriteBodyInc(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -377,7 +377,7 @@ void WriteInstellation(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -397,7 +397,7 @@ void WriteK2Man(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dK2Man; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } } else { *dTmp = -1; @@ -410,10 +410,10 @@ void WriteImK2Man(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (body[iBody].bEqtide) { *dTmp = body[iBody].dImK2Man; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } } else { *dTmp = -1; @@ -425,7 +425,7 @@ void WriteKecc(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = body[iBody].dKecc; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } /* @@ -450,7 +450,7 @@ void WriteBodyLongA(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -467,7 +467,7 @@ void WriteLongP(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -484,7 +484,7 @@ void WriteLongP(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -510,7 +510,7 @@ void WriteBodyArgP(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, } if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -541,7 +541,7 @@ void WriteLXUVTot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -559,7 +559,7 @@ void WriteMass(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dMass; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -579,7 +579,7 @@ void WriteObliquity(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -604,7 +604,7 @@ void WriteBodyPrecA(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -628,7 +628,7 @@ void WriteOrbAngMom(BODY *body, CONTROL *control, OUTPUT *output, } if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / (fdUnitsMass(units->iMass) * fdUnitsLength(units->iLength) * @@ -660,7 +660,7 @@ void WriteOrbEcc(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = -1; } } - fvFormattedString(&cUnit, "%s", ""); + fvFormattedString(cUnit, "%s", ""); } // XXX This function doesn't work! @@ -674,7 +674,7 @@ void WriteLostEng(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { double dConversion = fdUnitsEnergy(units->iTime, units->iMass, units->iLength); *dTmp /= dConversion; @@ -690,7 +690,7 @@ void WriteOrbEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -717,7 +717,7 @@ void WriteOrbMeanMotion(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -750,7 +750,7 @@ void WriteOrbPeriod(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsTime(units->iTime); fsUnitsTime(units->iTime, cUnit); @@ -779,7 +779,7 @@ void WriteOrbSemi(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -797,7 +797,7 @@ void WriteRadius(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dRadius; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -820,7 +820,7 @@ void WriteRotAngMom(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / (fdUnitsMass(units->iMass) * fdUnitsLength(units->iLength) * @@ -837,7 +837,7 @@ void WriteRotKinEnergy(BODY *body, CONTROL *control, OUTPUT *output, body[iBody].dRadGyra, body[iBody].dRotRate); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -851,7 +851,7 @@ void WriteRotRate(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dRotRate; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -865,7 +865,7 @@ void WriteRotPer(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = fdFreqToPer(body[iBody].dRotRate); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsTime(units->iTime); fsUnitsTime(units->iTime, cUnit); @@ -879,7 +879,7 @@ void WriteRotVel(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = fdRotVel(body[iBody].dRadius, body[iBody].dRotRate); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / fdUnitsLength(units->iLength); fsUnitsVel(units, cUnit); @@ -936,7 +936,7 @@ void WriteSurfaceEnergyFlux(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -973,7 +973,7 @@ void WriteTidalQ(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = -1; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } @@ -987,7 +987,7 @@ void WriteTidalQMantle(BODY *body, CONTROL *control, OUTPUT *output, } else { *dTmp = -1; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteTime(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -997,7 +997,7 @@ void WriteTime(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = control->Evolve.iDir * control->Evolve.dTime; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsTime(units->iTime); fsUnitsTime(units->iTime, cUnit); @@ -1012,7 +1012,7 @@ void WriteTotAngMom(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / (fdUnitsMass(units->iMass) * fdUnitsLength(units->iLength) * @@ -1029,7 +1029,7 @@ void WriteLostAngMom(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime) / (fdUnitsMass(units->iMass) * fdUnitsLength(units->iLength) * @@ -1046,7 +1046,7 @@ void WriteTotEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -1061,7 +1061,7 @@ void WritePotEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -1076,7 +1076,7 @@ void WriteKinEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -1091,7 +1091,7 @@ void WriteOrbKinEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -1110,7 +1110,7 @@ void WriteOrbPotEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -1124,7 +1124,7 @@ void WriteTotOrbEnergy(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); fsUnitsEnergy(units, cUnit); @@ -1141,7 +1141,7 @@ void WriteImK2(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, } else { *dTmp = -1; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteK2(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -1153,7 +1153,7 @@ void WriteK2(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, } else { *dTmp = body[iBody].dK2; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteXobl(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -1161,7 +1161,7 @@ void WriteXobl(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = body[iBody].dXobl; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteYobl(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -1169,7 +1169,7 @@ void WriteYobl(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = body[iBody].dYobl; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteZobl(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -1177,7 +1177,7 @@ void WriteZobl(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = body[iBody].dZobl; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteMeanAnomaly(BODY *body, CONTROL *control, OUTPUT *output, @@ -1188,7 +1188,7 @@ void WriteMeanAnomaly(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMeanA; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -1212,7 +1212,7 @@ void WriteMeanLongitude(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2008,10 +2008,11 @@ void LogOutputOrder(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp, int iBody) { int iCol, iOut, iSubOut, iExtra = 0; - char cCol[MODULEOUTEND][OUTLEN+2]; // +2 for brackets + char **cCol; // +2 for brackets double *dTmp; char *cUnit=NULL, *cTmp; + cCol=malloc(MODULEOUTEND*sizeof(char*)); for (iCol = 0; iCol < files->Outfile[iBody].iNumCols; iCol++) { for (iOut = 0; iOut < MODULEOUTEND; iOut++) { if (memcmp(files->Outfile[iBody].caCol[iCol], output[iOut].cName, @@ -2021,10 +2022,11 @@ void LogOutputOrder(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, fnWrite[iOut](body, control, &output[iOut], system, &control->Units[iBody], update, iBody, dTmp, &cUnit); for (iSubOut = 0; iSubOut < output[iOut].iNum; iSubOut++) { - strcpy(cCol[iCol + iSubOut + iExtra], + cCol[iCol + iSubOut + iExtra]=NULL; + fvFormattedString(&cCol[iCol + iSubOut + iExtra], files->Outfile[iBody].caCol[iCol]); fvFormattedString(&cTmp, "[%s]", cUnit); - strcat(cCol[iCol + iSubOut + iExtra], cTmp); + fvFormattedString(cCol[iCol + iSubOut + iExtra], cTmp); } iExtra += (output[iOut].iNum - 1); free(dTmp); @@ -2037,16 +2039,18 @@ void LogOutputOrder(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, fprintf(fp, " %s", cCol[iCol]); } fprintf(fp, "\n"); + free(cCol); } void LogGridOutput(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp, int iBody) { int iCol, iOut, iSubOut, iExtra = 0; - char cCol[MODULEOUTEND][OUTLEN+2]; // +2 for brackets + char **cCol; // +2 for brackets double *dTmp; char *cUnit=NULL, *cTmp; + cCol=malloc(MODULEOUTEND*sizeof(char*)); for (iCol = 0; iCol < files->Outfile[iBody].iNumGrid; iCol++) { for (iOut = 0; iOut < MODULEOUTEND; iOut++) { if (memcmp(files->Outfile[iBody].caGrid[iCol], output[iOut].cName, @@ -2056,10 +2060,11 @@ void LogGridOutput(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, fnWrite[iOut](body, control, &output[iOut], system, &control->Units[iBody], update, iBody, dTmp, &cUnit); for (iSubOut = 0; iSubOut < output[iOut].iNum; iSubOut++) { - strcpy(cCol[iCol + iSubOut + iExtra], + cCol[iCol + iSubOut + iExtra]=NULL; + fvFormattedString(&cCol[iCol + iSubOut + iExtra], files->Outfile[iBody].caGrid[iCol]); fvFormattedString(&cTmp, "[%s]", cUnit); - strcat(cCol[iCol + iSubOut + iExtra], cTmp); + fvFormattedString(cCol[iCol + iSubOut + iExtra], cTmp); } iExtra += (output[iOut].iNum - 1); free(dTmp); @@ -2073,6 +2078,7 @@ void LogGridOutput(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, fprintf(fp, " %s", cCol[iCol]); } fprintf(fp, "\n"); + free(cCol); } void LogOptions(CONTROL *control, FILES *files, MODULE *module, SYSTEM *system, @@ -2450,6 +2456,9 @@ void WriteOutput(BODY *body, CONTROL *control, FILES *files, OUTPUT *output, } } } + free(cUnit); + free(cPoiseGrid); + free(cLaplaceFunc); } void InitializeOutput(FILES *files, OUTPUT *output, fnWriteOutput fnWrite[]) { diff --git a/src/poise.c b/src/poise.c index c9538308f..eb0230cee 100644 --- a/src/poise.c +++ b/src/poise.c @@ -140,14 +140,15 @@ void ReadFileOrbitOblData(BODY *body, CONTROL *control, FILES *files, AddOptionString(files->Infile[iFile].cIn, options->cName, cTmp, &lTmp, control->Io.iVerbose); + body[iFile - 1].sFileOrbitOblData=NULL; if (lTmp >= 0) { /* Cannot exist in primary input file -- Each body has an output file */ NotPrimaryInput(iFile, options->cName, files->Infile[iFile].cIn, lTmp, control->Io.iVerbose); - strcpy(body[iFile - 1].sFileOrbitOblData, cTmp); + fvFormattedString(&body[iFile - 1].sFileOrbitOblData, cTmp); UpdateFoundOption(&files->Infile[iFile], options, lTmp, iFile); } else if (iFile > 0) - strcpy(body[iFile - 1].sFileOrbitOblData, options->cDefault); + fvFormattedString(&body[iFile - 1].sFileOrbitOblData, options->cDefault); } void ReadIceAlbedo(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, @@ -2688,7 +2689,7 @@ void WriteTGlobal(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dTGlobal; if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp = fdUnitsTemp(*dTmp, U_CELSIUS, U_KELVIN); fsUnitsTime(0, cUnit); @@ -2700,7 +2701,7 @@ void WriteAlbedoGlobal(BODY *body, CONTROL *control, OUTPUT *output, double *dTmp, char **cUnit) { /* Get AlbedoGlobal */ *dTmp = body[iBody].dAlbedoGlobal; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteSnowball(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2708,7 +2709,7 @@ void WriteSnowball(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { /* Get snowball status */ *dTmp = (double)body[iBody].bSnowball; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceCapNorthLand(BODY *body, CONTROL *control, OUTPUT *output, @@ -2720,7 +2721,7 @@ void WriteIceCapNorthLand(BODY *body, CONTROL *control, OUTPUT *output, fvNorthIceCapLand(body, iBody, &dLat, &iLatIceEdge, &bCap); *dTmp = (double)bCap; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceCapNorthLatLand(BODY *body, CONTROL *control, OUTPUT *output, @@ -2734,7 +2735,7 @@ void WriteIceCapNorthLatLand(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLat; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2749,7 +2750,7 @@ void WriteIceCapNorthSea(BODY *body, CONTROL *control, OUTPUT *output, fvNorthIceCapSea(body, iBody, &dLat, &iLatIceEdge, &bCap); *dTmp = (double)bCap; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceCapNorthLatSea(BODY *body, CONTROL *control, OUTPUT *output, @@ -2763,7 +2764,7 @@ void WriteIceCapNorthLatSea(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLat; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2778,7 +2779,7 @@ void WriteIceCapSouthLand(BODY *body, CONTROL *control, OUTPUT *output, fvSouthIceCapLand(body, iBody, &dLat, &iLatIceEdge, &bCap); *dTmp = (double)bCap; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceCapSouthLatLand(BODY *body, CONTROL *control, OUTPUT *output, @@ -2792,7 +2793,7 @@ void WriteIceCapSouthLatLand(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLat; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2807,7 +2808,7 @@ void WriteIceCapSouthSea(BODY *body, CONTROL *control, OUTPUT *output, fvSouthIceCapSea(body, iBody, &dLat, &iLatIceEdge, &bCap); *dTmp = (double)bCap; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceCapSouthLatSea(BODY *body, CONTROL *control, OUTPUT *output, @@ -2822,7 +2823,7 @@ void WriteIceCapSouthLatSea(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLat; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2839,7 +2840,7 @@ void WriteIceBeltLand(BODY *body, CONTROL *control, OUTPUT *output, &bBelt); *dTmp = (double)bBelt; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceBeltNorthLatLand(BODY *body, CONTROL *control, OUTPUT *output, @@ -2854,7 +2855,7 @@ void WriteIceBeltNorthLatLand(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLatNorth; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2873,7 +2874,7 @@ void WriteIceBeltSouthLatLand(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLatSouth; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2890,7 +2891,7 @@ void WriteIceBeltSea(BODY *body, CONTROL *control, OUTPUT *output, &bBelt); *dTmp = (double)bBelt; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceBeltNorthLatSea(BODY *body, CONTROL *control, OUTPUT *output, @@ -2905,7 +2906,7 @@ void WriteIceBeltNorthLatSea(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLatNorth; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2924,7 +2925,7 @@ void WriteIceBeltSouthLatSea(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dLatSouth; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -2936,7 +2937,7 @@ void WriteSnowballLand(BODY *body, CONTROL *control, OUTPUT *output, double *dTmp, char **cUnit) { *dTmp = (double)fbSnowballLand(body, iBody); - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteSnowballSea(BODY *body, CONTROL *control, OUTPUT *output, @@ -2944,7 +2945,7 @@ void WriteSnowballSea(BODY *body, CONTROL *control, OUTPUT *output, double *dTmp, char **cUnit) { *dTmp = (double)fbSnowballSea(body, iBody); - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteIceFree(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2952,7 +2953,7 @@ void WriteIceFree(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { *dTmp = (double)fbIceFree(body, iBody); - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteSkipSeas(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2960,7 +2961,7 @@ void WriteSkipSeas(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, char **cUnit) { /* Get AlbedoGlobal */ *dTmp = body[iBody].bSkipSeas; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteTempLat(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, @@ -2978,7 +2979,7 @@ void WriteTempLat(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3003,7 +3004,7 @@ void WriteTempMinLat(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3027,7 +3028,7 @@ void WriteTempMaxLat(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3051,7 +3052,7 @@ void WriteTempMaxLand(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3075,7 +3076,7 @@ void WriteTempMaxWater(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp = fdUnitsTemp(*dTmp, U_CELSIUS, U_KELVIN); fsUnitsTime(0, cUnit); @@ -3097,7 +3098,7 @@ void WriteTempLandLat(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp = fdUnitsTemp(*dTmp, U_CELSIUS, U_KELVIN); fsUnitsTime(0, cUnit); @@ -3119,7 +3120,7 @@ void WriteTempWaterLat(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { /* Units already in Celsius (POISE uses Celsius) */ - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp = fdUnitsTemp(*dTmp, U_CELSIUS, U_KELVIN); fsUnitsTime(0, cUnit); @@ -3135,7 +3136,7 @@ void WriteLatitude(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3157,7 +3158,7 @@ void WriteAlbedoLat(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].daAlbedoAvg[body[iBody].iWriteLat]; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteAlbedoLandLat(BODY *body, CONTROL *control, OUTPUT *output, @@ -3172,7 +3173,7 @@ void WriteAlbedoLandLat(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].daAlbedoAvgL[body[iBody].iWriteLat]; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteAlbedoWaterLat(BODY *body, CONTROL *control, OUTPUT *output, @@ -3187,7 +3188,7 @@ void WriteAlbedoWaterLat(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].daAlbedoAvgW[body[iBody].iWriteLat]; } - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteFluxInGlobal(BODY *body, CONTROL *control, OUTPUT *output, @@ -3198,7 +3199,7 @@ void WriteFluxInGlobal(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { // Negative option is SI - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3216,7 +3217,7 @@ void WriteFluxOutGlobal(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { // Negative option is SI - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3234,7 +3235,7 @@ void WriteTotIceMass(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { // Negative option is SI - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3251,7 +3252,7 @@ void WriteIceFlowTot(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { // Negative option is SI - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -3267,7 +3268,7 @@ void WriteAreaIceCov(BODY *body, CONTROL *control, OUTPUT *output, // if (output->bDoNeg[iBody]) { // // Negative option is SI - // strcpy(cUnit,output->cNeg); + // fvFormattedString(cUnit,output->cNeg); // } else { // *dTmp /= fdUnitsMass(units->iMass); // fsUnitsMass(units->iMass,cUnit); @@ -3283,7 +3284,7 @@ void WriteIceBalanceTot(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { // Negative option is SI - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3300,7 +3301,7 @@ void WriteAnnualInsol(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3317,7 +3318,7 @@ void WritePeakInsol(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3654,7 +3655,7 @@ void WriteFluxMerid(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3678,7 +3679,7 @@ void WriteFluxIn(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3702,7 +3703,7 @@ void WriteFluxOut(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { @@ -3721,7 +3722,7 @@ void WriteDivFlux(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].daDivFluxAvg[body[iBody].iWriteLat]; } if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -3740,7 +3741,7 @@ void WriteIceMass(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, } if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { //*dTmp /= fdUnitsMass(units->iMass)/pow(fdUnitsLength(units->iLength),2); @@ -3759,7 +3760,7 @@ void WriteIceHeight(BODY *body, CONTROL *control, OUTPUT *output, } if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -3777,7 +3778,7 @@ void WriteBedrockH(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, } if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -3795,7 +3796,7 @@ void WritePlanckBAvg(BODY *body, CONTROL *control, OUTPUT *output, } // if (output->bDoNeg[iBody]) { - // strcpy(cUnit,output->cNeg); + // fvFormattedString(cUnit,output->cNeg); // } else { // *dTmp /= fdUnitsLength(units->iLength); // fsUnitsLength(units->iLength,cUnit); @@ -3814,7 +3815,7 @@ void WriteDIceMassDt(BODY *body, CONTROL *control, OUTPUT *output, } if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsLength(units->iLength); fsUnitsLength(units->iLength, cUnit); @@ -3833,7 +3834,7 @@ void WriteIceAccum(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, } // if (output->bDoNeg[iBody]) { - // strcpy(cUnit,output->cNeg); + // fvFormattedString(cUnit,output->cNeg); // } else { // *dTmp /= fdUnitsLength(units->iLength); // fsUnitsLength(units->iLength,cUnit); @@ -3852,7 +3853,7 @@ void WriteIceAblate(BODY *body, CONTROL *control, OUTPUT *output, } // if (output->bDoNeg[iBody]) { - // strcpy(cUnit,output->cNeg); + // fvFormattedString(cUnit,output->cNeg); // } else { // *dTmp /= fdUnitsLength(units->iLength); // fsUnitsLength(units->iLength,cUnit); @@ -3872,7 +3873,7 @@ void WriteDIceMassDtFlow(BODY *body, CONTROL *control, OUTPUT *output, } if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { // *dTmp /= fdUnitsMass(units->iMass)/pow(fdUnitsLength(units->iLength),2); // fsUnitsEnergyFlux(units,cUnit); @@ -3886,7 +3887,7 @@ void WriteEnergyResL(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].daEnergyResL[body[iBody].iWriteLat]; if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -3900,7 +3901,7 @@ void WriteEnergyResW(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].daEnergyResW[body[iBody].iWriteLat]; if (output->bDoNeg[iBody]) { - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); diff --git a/src/radheat.c b/src/radheat.c index 196eb23c9..0612b205e 100644 --- a/src/radheat.c +++ b/src/radheat.c @@ -3665,7 +3665,7 @@ void fvWrite26AlPowerMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd26AlPowerMan(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -3691,7 +3691,7 @@ void fvWrite26AlEnFlux(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd26AlEnFlux(body, update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -3716,7 +3716,7 @@ void fvWriteD26AlNumDt(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = *(update[iBody].pdD26AlNumManDt); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -3759,7 +3759,7 @@ void fvWrite26AlMassMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d26AlNumMan * MASS26AL; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -3802,7 +3802,7 @@ void fvWrite26AlNumMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d26AlNumMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -3828,7 +3828,7 @@ void fvWrite26AlPowerCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd26AlPowerCore(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -3853,7 +3853,7 @@ void fvWrite26AlMassCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d26AlNumCore * MASS26AL; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -3878,7 +3878,7 @@ void fvWrite26AlNumCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d26AlNumCore; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -3902,7 +3902,7 @@ void fvWrite26AlPowerTot(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd26AlPower(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -3932,7 +3932,7 @@ void fvWrite40KPowerMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd40KPowerMan(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -3958,7 +3958,7 @@ void fvWrite40KEnFlux(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd40KEnFlux(body, update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -3983,7 +3983,7 @@ void fvWriteD40KNumDt(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = *(update[iBody].pdD40KNumManDt); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -4026,7 +4026,7 @@ void fvWrite40KMassMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d40KNumMan * MASS40K; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4070,7 +4070,7 @@ void fvWrite40KNumMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d40KNumMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4096,7 +4096,7 @@ void fvWrite40KPowerCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd40KPowerCore(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4121,7 +4121,7 @@ void fvWrite40KMassCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d40KNumCore * MASS40K; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4146,7 +4146,7 @@ void fvWrite40KNumCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d40KNumCore; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4172,7 +4172,7 @@ void fvWrite40KPowerCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd40KPowerCrust(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4197,7 +4197,7 @@ void fvWrite40KMassCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d40KNumCrust * MASS40K; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4222,7 +4222,7 @@ void fvWrite40KNumCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d40KNumCrust; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4246,7 +4246,7 @@ void fvWrite40KPowerTot(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd40KPower(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4275,7 +4275,7 @@ void fvWrite232ThEnFlux(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -4301,7 +4301,7 @@ void fvWriteD232ThNumDt(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -4363,7 +4363,7 @@ void fvWrite232ThPowerMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd232ThPowerMan(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4388,7 +4388,7 @@ void fvWrite232ThMassMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d232ThNumMan * MASS232TH; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4413,7 +4413,7 @@ void fvWrite232ThNumMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d232ThNumMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4439,7 +4439,7 @@ void fvWrite232ThPowerCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd232ThPowerCore(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4464,7 +4464,7 @@ void fvWrite232ThMassCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d232ThNumCore * MASS232TH; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4489,7 +4489,7 @@ void fvWrite232ThNumCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d232ThNumCore; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4515,7 +4515,7 @@ void fvWrite232ThPowerCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd232ThPowerCrust(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4540,7 +4540,7 @@ void fvWrite232ThMassCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d232ThNumCrust * MASS232TH; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4565,7 +4565,7 @@ void fvWrite232ThNumCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d232ThNumCrust; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4589,7 +4589,7 @@ void fvWrite232ThPowerTot(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd232ThPower(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4617,7 +4617,7 @@ void fvWrite238UEnFlux(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd238UEnFlux(body, update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -4642,7 +4642,7 @@ void fvWriteD238UNumDt(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = *(update[iBody].pdD238UNumManDt); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -4706,7 +4706,7 @@ void fvWrite238UPowerMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd238UPowerMan(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4731,7 +4731,7 @@ void fvWrite238UMassMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d238UNumMan * MASS238U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4756,7 +4756,7 @@ void fvWrite238UNumMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d238UNumMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4782,7 +4782,7 @@ void fvWrite238UPowerCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd238UPowerCore(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4807,7 +4807,7 @@ void fvWrite238UMassCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d238UNumCore * MASS238U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4832,7 +4832,7 @@ void fvWrite238UNumCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d238UNumCore; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4858,7 +4858,7 @@ void fvWrite238UPowerCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd238UPowerCrust(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4883,7 +4883,7 @@ void fvWrite238UMassCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d238UNumCrust * MASS238U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -4908,7 +4908,7 @@ void fvWrite238UNumCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d238UNumCrust; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -4932,7 +4932,7 @@ void fvWrite238UPowerTot(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd238UPower(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -4962,7 +4962,7 @@ void fvWrite235UEnFlux(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); @@ -4988,7 +4988,7 @@ void fvWriteD235UNumDt(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp *= fdUnitsTime(units->iTime); fsUnitsRate(units->iTime, cUnit); @@ -5052,7 +5052,7 @@ void fvWrite235UPowerMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = -(*(update[iBody].pdD235UNumManDt)) * ENERGY235U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5077,7 +5077,7 @@ void fvWrite235UMassMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d235UNumMan * MASS235U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -5102,7 +5102,7 @@ void fvWrite235UNumMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d235UNumMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -5128,7 +5128,7 @@ void fvWrite235UPowerCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd235UPowerCore(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5153,7 +5153,7 @@ void fvWrite235UMassCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d235UNumCore * MASS235U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -5178,7 +5178,7 @@ void fvWrite235UNumCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d235UNumCore; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -5204,7 +5204,7 @@ void fvWrite235UPowerCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd235UPowerCrust(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5229,7 +5229,7 @@ void fvWrite235UMassCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d235UNumCrust * MASS235U; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsMass(units->iMass); fsUnitsMass(units->iMass, cUnit); @@ -5254,7 +5254,7 @@ void fvWrite235UNumCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].d235UNumCrust; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } /* else nothing, as it is a number */ } @@ -5278,7 +5278,7 @@ void fvWrite235UPowerTot(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fd235UPower(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5307,7 +5307,7 @@ void fvWriteRadPowerCrust(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fdRadPowerCrust(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5333,7 +5333,7 @@ void fvWriteRadPowerMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fdRadPowerMan(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5359,7 +5359,7 @@ void fvWriteRadPowerCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fdRadPowerCore(update, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5385,7 +5385,7 @@ void fvWriteRadPowerTotal(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dRadPowerTotal; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -5411,7 +5411,7 @@ void fvWriteSurfEnFluxRadTotal(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = fdSurfEnFluxRadTotal(body, system, update, iBody, iBody); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsEnergyFlux(units->iTime, units->iMass, units->iLength); fsUnitsEnergyFlux(units, cUnit); diff --git a/src/spinbody.c b/src/spinbody.c index 35a9dec46..142b1c550 100644 --- a/src/spinbody.c +++ b/src/spinbody.c @@ -893,42 +893,42 @@ void WritePositionX(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dPositionX; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WritePositionY(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dPositionY; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WritePositionZ(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dPositionZ; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteVelX(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dVelX; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteVelY(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dVelY; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteVelZ(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dVelZ; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteInclinationSpinBody(BODY *body, CONTROL *control, OUTPUT *output, @@ -938,7 +938,7 @@ void WriteInclinationSpinBody(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); @@ -952,7 +952,7 @@ void WriteLongASpinBody(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsAngle(units->iAngle); fsUnitsAngle(units->iAngle, cUnit); diff --git a/src/stellar.c b/src/stellar.c index 56fa80834..1efe53716 100644 --- a/src/stellar.c +++ b/src/stellar.c @@ -1264,7 +1264,7 @@ void WriteLuminosity(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -1286,7 +1286,7 @@ void WriteLXUV(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { *dTmp /= fdUnitsPower(units->iTime, units->iMass, units->iLength); fsUnitsPower(units, cUnit); @@ -1297,7 +1297,7 @@ void WriteLXUVFrac(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit) { *dTmp = body[iBody].dLXUV / body[iBody].dLuminosity; - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteRossbyNumber(BODY *body, CONTROL *control, OUTPUT *output, @@ -1305,7 +1305,7 @@ void WriteRossbyNumber(BODY *body, CONTROL *control, OUTPUT *output, double *dTmp, char **cUnit) { *dTmp = body[iBody].dRotPer / fdCranmerSaar2011TauCZ(body[iBody].dTemperature); - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } void WriteDRotPerDtStellar(BODY *body, CONTROL *control, OUTPUT *output, @@ -1321,9 +1321,9 @@ void WriteDRotPerDtStellar(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = dDeriv * (-2 * PI / (body[iBody].dRotRate * body[iBody].dRotRate)); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { - strcpy(cUnit, ""); + fvFormattedString(cUnit, ""); } } diff --git a/src/thermint.c b/src/thermint.c index d279d8e9c..3fc651193 100644 --- a/src/thermint.c +++ b/src/thermint.c @@ -2123,7 +2123,7 @@ void fvWriteTMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dTMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { /* *dTmp /= fdUnitsTemp(body[iBody].dTman,0,units->iTemp); //set "iOldType" to 0, second input var, arbitarily. @@ -2151,7 +2151,7 @@ void fvWriteTUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dTUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2175,7 +2175,7 @@ void fvWriteTsolUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *syste *dTmp = body[iBody].dTsolUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else{ } } @@ -2199,7 +2199,7 @@ void fvWriteTLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dTLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2223,7 +2223,7 @@ void fvWriteTJumpUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dTJumpUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2247,7 +2247,7 @@ void fvWriteTJumpLMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dTJumpLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2271,7 +2271,7 @@ void fvWriteSignTJumpUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dSignTJumpUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2295,7 +2295,7 @@ void fvWriteSignTJumpLMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dSignTJumpLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2319,7 +2319,7 @@ void fvWriteTCMB(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dTCMB; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2343,7 +2343,7 @@ void fvWriteTCore(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dTCore; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2367,7 +2367,7 @@ void fvWriteViscUManArr(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dViscUManArr; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { fsUnitsViscosity(units, cUnit); *dTmp /= fdUnitsTime(units->iTime) / @@ -2394,7 +2394,7 @@ void fvWriteViscUMan(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { fsUnitsViscosity(units, cUnit); *dTmp /= fdUnitsTime(units->iTime) / @@ -2421,7 +2421,7 @@ void fvWriteDynamicViscosity(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { fsUnitsEnergy(units, cUnit); *dTmp /= fdUnitsEnergy(units->iTime, units->iMass, units->iLength); @@ -2447,7 +2447,7 @@ void fvWriteViscLMan(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { fsUnitsViscosity(units, cUnit); *dTmp /= fdUnitsTime(units->iTime) / @@ -2474,7 +2474,7 @@ void fvWriteViscMMan(BODY *body, CONTROL *control, OUTPUT *output, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { fsUnitsViscosity(units, cUnit); *dTmp /= fdUnitsTime(units->iTime) / @@ -2501,7 +2501,7 @@ void fvWriteViscJumpMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dViscJumpMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2524,7 +2524,7 @@ void fvWriteBLUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dBLUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2547,7 +2547,7 @@ void fvWriteBLLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dBLLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2570,7 +2570,7 @@ void fvWriteShmodUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dShmodUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2593,7 +2593,7 @@ void fvWriteFMeltUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dFMeltUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2616,7 +2616,7 @@ void fvWriteFMeltLMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dFMeltLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2639,7 +2639,7 @@ void fvWriteMeltfactorUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMeltfactorUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2662,7 +2662,7 @@ void fvWriteMeltfactorLMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMeltfactorLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2685,7 +2685,7 @@ void fvWriteDepthMeltMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dDepthMeltMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2708,7 +2708,7 @@ void fvWriteTDepthMeltMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dTDepthMeltMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2731,7 +2731,7 @@ void fvWriteTJumpMeltMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dTJumpMeltMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2754,7 +2754,7 @@ void fvWriteMeltMassFluxMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMeltMassFluxMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2777,7 +2777,7 @@ void fvWriteRayleighMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dRayleighMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2800,7 +2800,7 @@ void fvWriteEruptEff(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dEruptEff; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2825,7 +2825,7 @@ void fvWriteRIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2848,7 +2848,7 @@ void fvWriteDRICDTCMB(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dDRICDTCMB; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2872,7 +2872,7 @@ void fvWriteChiOC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, // *dTmp = body[iBody].dRIC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2895,7 +2895,7 @@ void fvWriteChiIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dChiIC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2918,7 +2918,7 @@ void fvWriteMassOC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dMassOC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2941,7 +2941,7 @@ void fvWriteMassIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dMassIC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2964,7 +2964,7 @@ void fvWriteMassChiOC(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMassChiOC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -2987,7 +2987,7 @@ void fvWriteMassChiIC(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMassChiIC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3010,7 +3010,7 @@ void fvWriteDTChi(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dDTChi; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3033,7 +3033,7 @@ void fvWriteThermConductOC(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dThermConductOC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3056,7 +3056,7 @@ void fvWriteCoreBuoyTherm(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dCoreBuoyTherm; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3079,7 +3079,7 @@ void fvWriteCoreBuoyCompo(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dCoreBuoyCompo; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3102,7 +3102,7 @@ void fvWriteCoreBuoyTotal(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dCoreBuoyTotal; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3125,7 +3125,7 @@ void fvWriteGravICB(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dGravICB; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3148,7 +3148,7 @@ void fvWriteMagMom(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dMagMom; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3171,7 +3171,7 @@ void fvWriteRICDot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, *dTmp = body[iBody].dRICDot; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3194,7 +3194,7 @@ void fvWritePresSWind(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dPresSWind; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3217,7 +3217,7 @@ void fvWriteMagPauseRad(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dMagPauseRad; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3242,7 +3242,7 @@ void fvWriteHfluxUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHfluxUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3265,7 +3265,7 @@ void fvWriteHfluxLMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHfluxLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3288,7 +3288,7 @@ void fvWriteHfluxCMB(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHfluxCMB; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3311,7 +3311,7 @@ void fvWriteHfluxCMBAd(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHfluxCMBAd; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3334,7 +3334,7 @@ void fvWriteHfluxCMBConv(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHfluxCMBConv; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3357,7 +3357,7 @@ void fvWriteHflowUMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowUMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3380,7 +3380,7 @@ void fvWriteHflowSurf(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowSurf; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3403,7 +3403,7 @@ void fvWriteHflowLMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowLMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3426,7 +3426,7 @@ void fvWriteHflowCMB(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowCMB; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3449,7 +3449,7 @@ void fvWriteHflowLatentMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowLatentMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3472,7 +3472,7 @@ void fvWriteHflowMeltMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowMeltMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3495,7 +3495,7 @@ void fvWriteHflowSecMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowSecMan; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3519,7 +3519,7 @@ void fvWriteHflowLatentIC(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dHflowLatentIC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3542,7 +3542,7 @@ void fvWritePowerGravIC(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dPowerGravIC; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } @@ -3566,7 +3566,7 @@ void fvWriteTDotMan(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = (*(update[iBody].pdTDotMan)); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { /* *dTmp /= @@ -3596,7 +3596,7 @@ void fvWriteTDotCore(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = (*(update[iBody].pdTDotCore)); if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { /* *dTmp /= @@ -3626,7 +3626,7 @@ void fvWriteTrefLind(BODY *body, CONTROL *control, OUTPUT *output, *dTmp = body[iBody].dTrefLind; if (output->bDoNeg[iBody]) { *dTmp *= output->dNeg; - strcpy(cUnit, output->cNeg); + fvFormattedString(cUnit, output->cNeg); } else { } } diff --git a/src/verify.c b/src/verify.c index 77bb53482..09deb1b16 100644 --- a/src/verify.c +++ b/src/verify.c @@ -355,7 +355,7 @@ void VerifyIntegration(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, fnIntegrate *fnOneStep) { int iFile, iFile1 = 0, iFile2 = 0; - char cTmp[OPTLEN]; + char *cTmp=NULL; // Initialize iDir to 0, i.e. assume no integrations requested to start @@ -475,7 +475,7 @@ void VerifyIntegration(BODY *body, CONTROL *control, FILES *files, *fnOneStep = &RungeKutta4Step; } else { /* Assign Default */ - strcpy(cTmp, options[OPT_INTEGRATIONMETHOD].cDefault); + fvFormattedString(&cTmp, options[OPT_INTEGRATIONMETHOD].cDefault); if (control->Io.iVerbose >= VERBINPUT) { fprintf(stderr, "INFO: %s not set, defaulting to %s.\n", options[OPT_INTEGRATIONMETHOD].cName, diff --git a/src/vplanet.c b/src/vplanet.c index e486c9c25..0a0c2067f 100644 --- a/src/vplanet.c +++ b/src/vplanet.c @@ -66,10 +66,11 @@ int main_impl(int argc, char *argv[]) { fnUpdateVariable ***fnUpdate; fnIntegrate fnOneStep; + control.sGitVersion=NULL; #ifdef GITVERSION - strcpy(control.sGitVersion, GITVERSION); + fvFormattedString(&control.sGitVersion, GITVERSION); #else - strcpy(control.sGitVersion, "Unknown"); + fvFormattedString(&control.sGitVersion, "Unknown"); #endif /** Must initialize all options and outputs for all modules diff --git a/src/vplanet.h b/src/vplanet.h index 31c74509a..a784ac15d 100644 --- a/src/vplanet.h +++ b/src/vplanet.h @@ -1837,7 +1837,7 @@ struct CONTROL { IO Io; UNITS *Units; - char sGitVersion[64]; + char *sGitVersion; /* Move to BODY */ int *iMassRad; /**< Mass-Radius Relationship */