My question is: could I have a library folder with just a text file that will have the .h suffix and dump my common subroutines into that file

Yes, and you can try this without a risk

update - one of my .h only libs

//

// FILE: temperature.h

// VERSION: 0.1.00

// PURPOSE: temperature functions for Arduino

//

// HISTORY:

// 2011-04-17 first version

// 2011-05-01 optimized dewPointFast()

// 2012-12-25 added C2F variations

//

#ifndef temperature_h

#define temperature_h

#if defined(ARDUINO) && ARDUINO >= 100

#include "Arduino.h"

#else

#include "WProgram.h"

#endif

#define TEMPERATURE_LIB_VERSION "0.1.00"

// TEMPERATURE

#define Celsius2Fahrenheit(C) ((C)*9/5+32)

#define Fahrenheit2Celsius(F) (((F)-32)*5/9)

#define Celsius2Kelvin(C) ((C)+273.15)

#define Kelvin2Celsius(K) ((K)-273.15)

// DEWPOINT

// dewPoint function NOAA

// reference: http://wahiduddin.net/calc/density_algorithms.htm

double dewPoint(double celsius, double humidity)

{

double A0= 373.15/(273.15 + celsius);

double SUM = -7.90298 * (A0-1);

SUM += 5.02808 * log10(A0);

SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;

SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;

SUM += log10(1013.246);

double VP = pow(10, SUM-3) * humidity;

double T = log(VP/0.61078); // temp var

return (241.88 * T) / (17.558-T);

}

// delta max = 0.6544 wrt dewPoint()

// 5x faster than dewPoint()

// reference: http://en.wikipedia.org/wiki/Dew_point

// optimized by

double dewPointFast(double celsius, double humidity)

{

#define A 17.271

#define B 237.7

double temp = (A * celsius) / (B + celsius) + log(humidity*0.01);

return (B * temp) / (A - temp);

}

/*

optimized speed -273 - 3000

long CelciusToFahrenheit(long celcius)

{

if (celcius >=0 )

return (celcius * 471861 >> 18) + 32;

else

return -((-celcius) * 471861 >> 18) + 32;

}

// range not tested yet

long FahrenheitToCelsius(int f)

{

// http://www.codeproject.com/KB/cs/FindMulShift.aspx

long x = f - 32;

if (x >=0 )

return (x * 3641 >> 15) * 5;

else

return -((-x) * 3641 >> 15) * 5;

long x = (f - 32) * 5 ;

if (x >=0 )

return (x * 3641 >> 15);

else

return -((-x) * 3641 >> 15);

}

// integer version that does rounding

int Celcius2Fahrenheit(int celcius)

{

return (celsius * 18 + 5)/10 + 32;

}

int Celcius2Fahrenheit(int prevCelsius, int celcius)

{

return ((prevCelsius + celcius) * 9 + 325)/10;

}

*/

#endif

//

// END OF FILE

//