You can change more or less anything without changing your markup, the font size and position of superscripts is all customisable with care.
You didn't say too much about what you didn't like about the default setting. This shows some possibilities using different font sizes or setting the fontdimen parameters to affect the script positioning.
I would probably define macros that internally actually use mhchem (which you've mentioned in your question) for these variables. For convenience one could define a macro that calls them by a key name. If I understand it correctly the variable part before the molecular formula should be typeset in italics?
For units @Joseph's siunitx is the way to go, IMHO.
Maybe something like this:
\documentclass{article}
\usepackage{siunitx}
\usepackage[version=3]{mhchem}
\makeatletter
\newcommand*\DeclarePhysio[3]{\@namedef{#1}{\ensuremath{#2}\ce{#3}}}
\newcommand*\physio[1]{\@nameuse{#1}}
\makeatother
% \DeclarePhysio{<key>}{<var>}{<chem>}
\DeclarePhysio{FIO2}{F_I}{O2}
\DeclarePhysio{FEO2}{F_E}{O2}
\DeclarePhysio{PaCO2}{P_a}{CO2}
\begin{document}
\physio{FIO2} or \physio{FEO2} or \physio{PaCO2}
\SI{.5}{\liter\per\minute} or a standalone unit: \si{\newton\per\kilo\gram}
\end{document}
Best Answer
Try this one:
In math mode
^
means superscript and_
means subscript.