Changeset 614
- Timestamp:
- 06/11/15 10:30:11 (8 years ago)
- Location:
- XIOS
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/branchs/xios-1.0/src/calendar_util.cpp
r501 r614 126 126 127 127 //----------------------------------------------------------------- 128 129 bool operator==(const CDuration& ddr, const CDuration& dr) 130 { 131 return ((ddr.year == dr.year) && (ddr.month == dr.month) && (dr.day == ddr.day) && 132 (ddr.hour == dr.hour) && (ddr.minute == dr.minute) && (dr.second == ddr.second) && 133 (ddr.timestep == dr.timestep)); 134 } 135 136 bool operator!=(const CDuration& ddr, const CDuration& dr) 137 { 138 return !(ddr == dr); 139 } 128 140 129 141 /// Les opérateurs de comparaison. (Non testés pour le moment) -
XIOS/branchs/xios-1.0/src/calendar_util.hpp
r501 r614 23 23 24 24 /// Les opérateurs de comparaison. (Non testés pour le moment) 25 bool operator==(const CDuration& ddr, const CDuration& dr); 26 bool operator!=(const CDuration& ddr, const CDuration& dr); 27 25 28 bool operator==(const CDate& dt0, const CDate& dt1); 26 29 bool operator< (const CDate& dt0, const CDate& dt1); -
XIOS/branchs/xios-1.0/src/output/nc4_data_output.cpp
r613 r614 214 214 { 215 215 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 216 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 216 217 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 217 218 } … … 270 271 dim0.push_back(dimYid); dim0.push_back(dimXid); 271 272 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 273 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 272 274 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 273 275 dim0.clear(); … … 433 435 { 434 436 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 437 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 435 438 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 436 439 } … … 484 487 dim0.push_back(dimXid); 485 488 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 489 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 486 490 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 487 491 } … … 639 643 try 640 644 { 641 SuperClassWriter::addDimension("time_counter"); 642 SuperClassWriter::addDimension("time_bounds", 2); 645 SuperClassWriter::addDimension("time_counter"); 643 646 } 644 647 catch (CNetCdfException& e) 645 648 { 646 StdString msg("On writing time dimension : time_couter , time_bounds\n");649 StdString msg("On writing time dimension : time_couter\n"); 647 650 msg.append("In the context : "); 648 651 CContext* context = CContext::getCurrent() ; … … 797 800 if (wtime) 798 801 { 799 CDuration duration= CDuration::FromString(field->freq_op);800 duration.solveTimeStep(*context->calendar);801 StdString freqOpStr = duration.toStringUDUnits();802 CDuration freqOp = CDuration::FromString(field->freq_op); 803 freqOp.solveTimeStep(*context->calendar); 804 StdString freqOpStr = freqOp.toStringUDUnits(); 802 805 SuperClassWriter::addAttribute("interval_operation", freqOpStr, &fieldid); 803 806 804 duration= CDuration::FromString(field->getRelFile()->output_freq);805 duration.solveTimeStep(*context->calendar);806 SuperClassWriter::addAttribute("interval_write", duration.toStringUDUnits(), &fieldid);807 CDuration freqOut = CDuration::FromString(field->getRelFile()->output_freq); 808 freqOut.solveTimeStep(*context->calendar); 809 SuperClassWriter::addAttribute("interval_write", freqOut.toStringUDUnits(), &fieldid); 807 810 808 811 StdString cellMethods = coodinates.front() + ": "; … … 811 814 else if (field->operation.getValue() == "accumulate") cellMethods += "sum"; 812 815 else cellMethods += field->operation; 813 cellMethods += " (interval: " + freqOpStr + ")"; 816 if (freqOp.resolve(*context->calendar) != freqOut.resolve(*context->calendar)) 817 cellMethods += " (interval: " + freqOpStr + ")"; 814 818 SuperClassWriter::addAttribute("cell_methods", cellMethods, &fieldid); 815 819 } … … 881 885 { 882 886 this->writeFileAttributes(filename, description, 883 StdString("CF-1. 1"),887 StdString("CF-1.5"), 884 888 StdString("An IPSL model"), 885 889 this->getTimeStamp()); 886 890 887 if (file->nbAxis >= 1) 888 SuperClassWriter::addDimension("axis_nbounds", 2); 891 SuperClassWriter::addDimension("axis_nbounds", 2); 889 892 } 890 893 catch (CNetCdfException& e) … … 1208 1211 StdString axisBoundId("time_centered_bounds"); 1209 1212 StdString timeid("time_counter"); 1210 StdString timeBoundId(" time_bounds");1213 StdString timeBoundId("axis_nbounds"); 1211 1214 1212 1215 if (field->foperation->timeType() == func::CFunctor::instant) -
XIOS/trunk/src/output/nc4_data_output.cpp
r613 r614 215 215 { 216 216 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 217 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 217 218 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 218 219 } … … 271 272 dim0.push_back(dimYid); dim0.push_back(dimXid); 272 273 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 274 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 273 275 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 274 276 dim0.clear(); … … 433 435 { 434 436 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 437 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 435 438 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 436 439 } … … 484 487 dim0.push_back(dimXid); 485 488 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 489 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 486 490 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 487 491 } … … 640 644 { 641 645 SuperClassWriter::addDimension("time_counter"); 642 SuperClassWriter::addDimension("time_bounds", 2);643 646 } 644 647 catch (CNetCdfException& e) 645 648 { 646 StdString msg("On writing time dimension : time_couter , time_bounds\n");649 StdString msg("On writing time dimension : time_couter\n"); 647 650 msg.append("In the context : "); 648 651 CContext* context = CContext::getCurrent() ; … … 818 821 if (wtime) 819 822 { 820 CDuration duration= field->freq_op.getValue();821 duration.solveTimeStep(*context->calendar);822 StdString freqOpStr = duration.toStringUDUnits();823 CDuration freqOp = field->freq_op.getValue(); 824 freqOp.solveTimeStep(*context->calendar); 825 StdString freqOpStr = freqOp.toStringUDUnits(); 823 826 SuperClassWriter::addAttribute("interval_operation", freqOpStr, &fieldid); 824 827 825 duration= field->getRelFile()->output_freq.getValue();826 duration.solveTimeStep(*context->calendar);827 SuperClassWriter::addAttribute("interval_write", duration.toStringUDUnits(), &fieldid);828 CDuration freqOut = field->getRelFile()->output_freq.getValue(); 829 freqOut.solveTimeStep(*context->calendar); 830 SuperClassWriter::addAttribute("interval_write", freqOut.toStringUDUnits(), &fieldid); 828 831 829 832 StdString cellMethods = coodinates.front() + ": "; … … 832 835 else if (field->operation.getValue() == "accumulate") cellMethods += "sum"; 833 836 else cellMethods += field->operation; 834 cellMethods += " (interval: " + freqOpStr + ")"; 837 if (freqOp.resolve(*context->calendar) != freqOut.resolve(*context->calendar)) 838 cellMethods += " (interval: " + freqOpStr + ")"; 835 839 SuperClassWriter::addAttribute("cell_methods", cellMethods, &fieldid); 836 840 } … … 1100 1104 { 1101 1105 this->writeFileAttributes(filename, description, 1102 StdString("CF-1. 1"),1106 StdString("CF-1.5"), 1103 1107 StdString("An IPSL model"), 1104 1108 this->getTimeStamp()); 1105 1109 1106 if (file->nbAxis >= 1) 1107 SuperClassWriter::addDimension("axis_nbounds", 2); 1110 SuperClassWriter::addDimension("axis_nbounds", 2); 1108 1111 } 1109 1112 catch (CNetCdfException& e) … … 1569 1572 StdString axisBoundId("time_centered_bounds"); 1570 1573 StdString timeid("time_counter"); 1571 StdString timeBoundId(" time_bounds");1574 StdString timeBoundId("axis_nbounds"); 1572 1575 1573 1576 if (field->foperation->timeType() == func::CFunctor::instant)
Note: See TracChangeset
for help on using the changeset viewer.