05 June 2015

611. Building ecce on debian jessie

NOTE:
* I've confirmed that ECCE built like this installs and works perfectly on a Thinkpad SL410 with intel graphics

* It also compiles and runs perfectly on a home built desktop with external nvidia card (GF119) using the binary non-free nvidia drivers

* It also compiles and runs perfectly on a home built desktop with onboard nvidia (GeForce 7025/nForce 630a) using the nouveau drivers. I had issues on this desktop before, but reinstalled debian jessie from scratch. Before that I used nvidia-legacy drivers, which may or may not  (probably not) have had something to do with it not working.

* UPDATE: instead of putting
#include <freetype.h>
the recommended method is to use
#include FT_FREETYPE_H
I've updated the patch_script.sh below accordingly. Same goes for ftoutln.h vs FT_OUTLINE_H, but the latter didn't work (error saying #include must use "" or <>)

* UPDATE: If you're having issues with undetected -lGL and -lGLU in the wxwidgets step, it's because
667       endif
668       cat configure.orig | sed -e 's%^SEARCH_INCLUDE="\\%SEARCH_INCLUDE="$ECCE_HOME/${ECCE_SYSDIR}3rdparty/mesa/include \\%' >! configure
669       chmod a+x configure
670 

needs to be changed to
667       endif
668       cat configure.orig | sed -e 's%^SEARCH_INCLUDE="\\%SEARCH_INCLUDE="$ECCE_HOME/${ECCE_SYSDIR}3rdparty/mesa/include $ECCE_HOME/${ECCE_SYSDIR}3rdparty/mesa/lib \\%' >! configure
669       chmod a+x configure
670 
I had this issue on a debian wheezy system with the vendor nvidia libraries.
I wouldn't have spotted this bug otherwise.

* Another error from my debian wheezy nvidia system: if you get
checking how to run the C preprocessor... x86_64-linux-gnu-gcc -E ./configure: line 2880: syntax error near unexpected token `Using' ./configure: line 2880: `  AC_MSG_NOTICE(Using external PCRE library from $PCRE_CONFIG)'
then make sure you're not using autoconf2.13, which is an obsolete version. I think I have it due to my system originally being installed back in 2010.

* Finally, I'm currently  working on fixing minor things that have been nagging me in ecce. One is the basis set quicklist (in src/dsm/edsiimpl/ICalcUtils.C), but obviously that's a personal preference. A more serious one is the 256 character limit for csh commands:
Exceeds maximum C shell command length of 256 characters
Note that this isn't the C shell complaining -- this is a built-in limit in ecce (in src/comm/rcommand/RCommand.C). I've changed that limit to 16384 characters (the real limit is much, much higher)
I've also added two basis sets to ECCE, and have tinkered with the exchange-correlation functionals.

I'll try to push the fixes back upstreams when I'm ready if they'll accept them; otherwise I'll create my own github/sourceforge repo.

THE POST:
Building ECCE on debian wheezy was a breeze. Building ECCE on debian jessie was painful.

In the end it boiled down to two things:
*freetype headers are no longer in freetype2/freetype/ but in freetype2/

*-Wformat-security is turned on by default

mkdir ~/tmp/ecce_compile -p
cd ~/tmp/ecce_compile
sudo apt-get install bzip2 build-essential autoconf libtool ant pkg-config
sudo apt-get install gtk+-2.0-dev libxt-dev csh gfortran openjdk-7-jdk python-dev
sudo apt-get install libjpeg-dev imagemagick xterm libfreetype6-dev libfl-dev libtool-bin

As usual I'm not 100% sure when it comes to the necessary packages. libfl-dev might not be needed.

Download the ECCE source code and put the ecce-v7.0-src.tar.bz2 file in ~/tmp/ecce_compile. Put the patch_script.sh file (see below in this post for the code) in ~/tmp/ecce_compile. Then do
 
tar xvf ecce-v7.0-src.tar.bz2 
cd ecce-v7.0/
export ECCE_HOME=`pwd`
cd build/
./build_ecce

You'll now step through a list over programs and libraries that are needed and what ECCE can find. If you're having issues with e.g. javac and java being different versions, use sudo update-alternative --config javac.

At the end you'll be asked whether to skip these checks next time -- answer y(es).

Next do
./build_ecce|tee xerxes.log && ./build_ecce |tee mesa.log && ./build_ecce |tee wxwidgets.log
sh ../../patch_script.sh && ./build_ecce|tee wxpython.log 
./build_ecce|tee httpd.log && ./build_ecce|tee ecce.log

If all went well you've managed to build the ecce binaries. If not, go through wxpython.log and check for errors relating to format-security statements. Then go through ecce.log and look for issues with freetype.

What to do with the binaries? Follow one of the many ECCE installation posts on this blog, e.g. http://verahill.blogspot.com.au/2013/08/487-version-70-of-ecce-out-now.html

NOTE that if you get ''Invalid null command." trying to execute install_ecce.v7.0.csh, install tcsh and do
tcsh install_ecce.v7.0.csh

The patch_script.sh file -- when copying, make sure to check that the lines end where they are supposed to and not broken up.
#!/bin/bash cp ${ECCE_HOME}/build/3rdparty-dists/wxPython-src-2.8.12.1.tar.bz2 ${ECCE_HOME}/3rdparty/build/ cd ${ECCE_HOME}/3rdparty/build/ tar xvf wxPython-src-2.8.12.1.tar.bz2 rm wxPython-src-2.8.12.1.tar.bz2 cd ${ECCE_HOME}/3rdparty/build/wxPython-src-2.8.12.1/wxPython grep -rsl "PyErr_Format(PyExc_RuntimeError, mesg)" *|xargs -I {} sed -i 's/PyErr_Format(PyExc_RuntimeError, mesg)/PyErr_Format(PyExc_RuntimeError, "%s", mesg)/g' {} cd ${ECCE_HOME}/3rdparty/build/wxPython-src-2.8.12.1/wxPython/src/gtk/ sed -i 's/wxLogFatalError(m)/wxLogFatalError("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogError(m)/wxLogError("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogWarning(m)/wxLogWarning("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogMessage(m)/wxLogMessage("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogInfo(m)/wxLogInfo("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogDebug(m)/wxLogDebug("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogVerbose(m)/wxLogVerbose("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogStatus(pFrame, m)/wxLogStatus(pFrame, "%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogStatus(m)/wxLogStatus("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogSysError(m)/wxLogSysError("%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogGeneric(level, m)/wxLogGeneric(level, "%s", m.c_str())/g' _misc_wrap.cpp sed -i 's/wxLogTrace(mask, m)/wxLogTrace(mask, "%s", m.c_str())/g' _misc_wrap.cpp cd ${ECCE_HOME}/src grep -srl "<freetype/freetype.h>" |xargs -I {} sed -i 's,<freetype/freetype.h>,FT_FREETYPE_H,g' {} grep -srl "freetype/" |xargs -I {} sed -i 's,freetype/,,g' {} cd ${ECCE_HOME}/build


What I found during troubleshooting:

In files such as:
./3rdparty/build/wxPython-src-2.8.12.1/wxPython/src/gtk/_core_wrap.cpp
./3rdparty/build/wxPython-src-2.8.12.1/wxPython/src/gtk/_gdi_wrap.cpp
./3rdparty/build/wxPython-src-2.8.12.1/wxPython/src/gtk/_windows_wrap.cpp
./3rdparty/build/wxPython-src-2.8.12.1/wxPython/src/gtk/_controls_wrap.cpp
there are sections which look like this:
863 } else { 864 PyErr_Format(PyExc_RuntimeError, mesg); 865 }
Compiling with -Wformat-security means that you'll have to patch all those expression to
863 } else { 864 PyErr_Format(PyExc_RuntimeError, "%s", mesg); 865 }
There were similar issue with wxLog*(m) statements in other files, e.g.
3rdparty/build/wxPython-src-2.8.12.1/wxPython/src/gtk/_misc_wrap.cpp -> ("%s", m.c_str()) 3093 m.Replace(wxT("%"), wxT("%%")); 3094 wxLogFatalError(m); 3095 } .. 3177 m.Replace(wxT("%"), wxT("%%")); 3178 wxLogTrace(mask, m); 3179 }

04 June 2015

610. Opening G09 output files in ECCE. A rough method

Update: Note that one thing that's not recognised at the moment are the MOs. Somehow I don't think that should be too difficult. Likewise, I think one should be able to import nwchem files by a little bit of editing like below.

Original post:
When opening a gaussian output file with the ECCE viewer:
* a symlink to the file is put in a subdirectory of /tmp
* the file is parsed for indications as to what the file type is:
+go+cd /tmp/ecce_me/jobs/Gaussian03__HEa24c +go+ln -s /home/me/calcs/test/Outputs/g03.g03out g03.g03out; echo CMDSTAT=$status CMDSTAT=0 +go+grep "Gaussian 98, Revision" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "Gaussian 94, Revision" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "Gaussian 03, Revision" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "%begin%input" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "%begin%input" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "Northwest Computational Chemistry Package" /home/me/test/Outputs/g03.g03out; echo CMDSTAT=$status
That's easy enough to fool by simply putting a Gaussian 03 line in the output (assuming that the G09 and G03 output are similar enough).

Here's a successful example, in the sense that ECCE found that it was a Gaussian 03 file:
CMDSTAT=0 +go+grep "Gaussian 98, Revision" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "Gaussian 94, Revision" g03.g03out; echo CMDSTAT=$status CMDSTAT=1 +go+grep "Gaussian 03, Revision" g03.g03out; echo CMDSTAT=$status Gaussian 03, Revision CMDSTAT=0 +go+if (-w /tmp/ecce_me/jobs/Gaussian03__7491Sb) echo TRUE TRUE +go+echo $PATH; echo CMDSTAT=$status Word too long. +go+if (-x Gaussian-03.expt) echo TRUE +go+exit; echo GOODBYE exit; echo GOODBYE

However, it fails to detect that Gaussian-03.expt is present and executable (both of which are true).

[SOLUTION]

To sort that out and to enable G09 detection, edit apps/data/client/cap/Gaussian-03.edml:
465 <output mimetype="chemical/x-gaussian03-output" type="parse" verifypattern="Gaussian 09, Revision">g03.g03out</output> 466 <output mimetype="chemical/x-gaussian-03-output" type="parse" verifypattern="Gaussian 09, Revision">g03.out</output> 467 <output mimetype="chemical/x-gaussian03-output" type="parse" verifypattern="Gaussian 03, Revision">g03.g03out</output> 468 <output mimetype="chemical/x-gaussian-03-output" type="parse" verifypattern="Gaussian 03, Revision">g03.out</output> .. 480 <importer>${ECCE_HOME}/scripts/parsers/Gaussian-03.expt </importer>
Your G09 files should now open properly (most of the time).

My ecce_env is fine and my runtime_setup.sh file is called by bash, but somehow it wouldn't find the Gaussian-03.expt file. Maybe it has something to do with the use of csh -f

NOTE that the file isn't imported -- it's just opened. It would've been nice if you could actually import the calculation into ECCE. Still, being able to view it is a nice start. 

609. NBO6 on a debian cluster (/w g09)

Curse blogspot and the lack of revision control and backups! I lost my post when it was almost finished.

So here's a briefer version. I have bought NBO6 and I want to integrate it with gaussian G09 rev. D (you can't use it directly with earlier binary versions)

My 'instructions' are basically copy/pasted from the NBO6 installation instructions -- this is a tl;dr version.
sudo cp nbo6.0-bin-linux-x86_64.tar.gz /opt/ cd /opt/ sudo tar xvf nbo6.0-bin-linux-x86_64.tar.gz sudo chown $USER:$USER nbo6 -R vim nbo6/bin/gaunbo6
Edit:
3 set INT = i8 4 set BINDIR = /opt/nbo6/bin
In your queue file add
set path = ( /opt/nbo6/bin $path )
In my case, as I use ECCE I edited my apps/siteconfig/CONFIG.node files:
Gaussian-03Command{ set path = ( /opt/nbo6/bin $path ) setenv GAUSS_SCRDIR /home/me/scratch setenv GAUSS_EXEDIR /opt/gaussian/g09d/g09/bsd:/opt/gaussian/g09d/g09/local:/opt/gaussian/g09d/g09/extras:/opt/gaussian/g09d/g09 /opt/gaussian/g09d/g09/g09< $infile > $outfile echo 0 }
I then tested it by running a basic gaussian calculation:
%Chk=H2O_631g.chk #P rOPBE/6-31G 6D 10F SCRF=(PCM,Solvent=water) Punch=(MO) pop=(nbo6) H2O 6-31G 0 1 ! charge and multiplicity O 0.00000 0.00000 0.118491 H 0.00000 0.754898 -0.473964 H 0.00000 -0.754898 -0.473964
and got
... 411 fchk file "/home/me/scratch/Gau-24659.EFC" 412 mat. el file "/home/me/scratch/Gau-24659.EUF" 413 414 Writing Wrt12E file "/home/me/scratch/Gau-24659.EUF" 415 Gaussian matrix elements Version 1 NLab= 7 Len12L=8 Len4L=8 416 Write GAUSSIAN SCALARS from file 501 offset 0 to matrix element file. .. 429 Write ALPHA FOCK MATRIX from file 10536 offset 0 to matrix element file. 430 No 2e integrals to process. 431 Perform NBO analysis... 432 433 *********************************** NBO 6.0 *********************************** 434 N A T U R A L A T O M I C O R B I T A L A N D 435 N A T U R A L B O N D O R B I T A L A N A L Y S I S 436 ********************* Me ********************* .. 447 Filename set to /home/me/scratch/Gau-24659 .. 620 ------------------------------- 621 Total Lewis 9.99612 ( 99.9612%) 622 Valence non-Lewis 0.00029 ( 0.0029%) 623 Rydberg non-Lewis 0.00358 ( 0.0358%) 624 ------------------------------- 625 Total unit 1 10.00000 (100.0000%) 626 Charge unit 1 0.00000 627 628 $CHOOSE 629 LONE 1 2 END 630 BOND S 1 2 S 1 3 END 631 $END 632 633 Maximum scratch memory used by NBO was 62605 words 634 Maximum scratch memory used by G09NBO was 9032 words ...

29 May 2015

608. Bruker Topspin on Debian Jessie

Here's a more extensive description of how to install Bruker Topspin (student version):

Very briefly:
$ wget http://bruker.telemaxx.net/student/linux-topspin.sh
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libxft2:i386 libxtst6:i386 perl-tk libcups2:i386 openjdk-7-jdk
$ su -
# xauth merge /home/user/.Xauthority 
# exit
$ sh linux-topspin.sh
$ ~/carbon/topspin$ sh linux-topspin.sh 
Verifying archive integrity... All good.
Uncompressing TopSpin 3.2..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
NOTE: no display found - trying localhost:11.0
Using TCL_LIBRARY=/tmp/selfgz29293/linux/tcl-8.5.11/lib/tcl8.5
Using TK_LIBRARY=/tmp/selfgz29293/linux/tk-8.5.11/lib/tk8.5
Please enter root password if prompted for it.
Password: 
Starting /tmp/selfgz29293/linux/tk-8.5.11/bin/wish8.5 -f /tmp/selfgz29293/xwinstall.d/swim/lib/xwinstall.tcl --
Using log file: /tmp/install.log
Error while displaying /tmp/selfgz29293/rellet.pdf with /tmp/swim-29462/prog/bin/xpdf : 
/tmp/swim-29462/prog/bin/xpdf: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory

Using log file: /opt/topspin3.2/install.log
Error: Cannot create user account flexlm: useradd flexlm: useradd: group flexlm exists - if you want to add this user to that group, use -g.
Errors occurred during installation:
Error: Cannot create user account flexlm: useradd flexlm: useradd: group flexlm exists - if you want to add this user to that group, use -g.
[I was doing this while logged in via ssh -XC to the student's computer, and without a pdf reader installed. If a pdf opens, close it to continue the installation. Don't worry about the errors.]

Here are screenshots from the installation process:
























The only thing that remained was to install the license.dat file that Bruker had issued to my student:

sudo mv /usr/local/flexlm/Bruker/licenses/license.dat /usr/local/flexlm/Bruker/licenses/license.bak sudo cp ~/carbon/topspin/license.dat /usr/local/flexlm/Bruker/licenses/license.dat
And then we were able to start topspin:







 And finally:

26 May 2015

607. Ping...Topspin and ADF work on debian jessie

My blog post productivity has been getting increasingly poor over the past year and a half, with a precipitous dip occurring at the beginning of this year. The dip is due to teaching and research, and the slow but steady decline preceding it is due to parenthood (the older the little one gets, the less time -- and inclination! -- I have to do extra work. Toddlers can be so much fun.).

I've got a few posts that need a bit of polishing before I publish ('how to set up your own DNS server' and 'how to set up your own mail server' are two examples), but until then, I'll seed your google search results with the following information about something completely different:

* Bruker Topspin 3.2 (https://www.bruker.com/products/mr/nmr/nmr-software/software/topspin/overview.html) -- the NMR program, not the table tennis game -- installs fine on Debian Jessie 64 bit (the only version we tried). Note that:
** you'll need java
** you'll need the 32 bit package with libXtst.so.6, not the 64 bit package. It can be installed via apt-get install libxtst6:i386
** you'll need to enable the root account if you haven't already (the easiest way to do that is to do sudo passwd root, set a password and you're good to go)

* The trial version of the Amsterdam Density Functional package (ADF; http://www.scm.com/Downloads/2014) installs and runs fine* on one of my Debian Jessie 64 bit nodes. I did not install the intel mpi libraries, but then adf seems to be working according to a shared memory model.

Installation was quick and painless. I downloaded the package using the instructions in the email, copied the .tgz file to my node, ssh:d with X enabled (ssh -XC) to allow for interactive activation/registration, and to be able to use adfjobs (to draw molecules and set up jobs), and to be able to use adfview.

I untared the adf file:
tar xvf adf2014.07.pc64_linux.intelmpi.tgz

I then moved the folder to /opt and took ownership of it:
sudo mv adf2014.07 /opt/
sudo chown $USER:$USER /opt/adf2014.07 -R

I edited /opt/adf2014.07/adfrc.sh to read:
ADFHOME=/opt/adf2014.07

And then sourced it and ran adfjobs:
source adfrc.sh
bin/adfjobs

I was then asked to provide the username and password from my email, and from that point on it was just a matter of using the program (which has it's own quirks ).

*by default only six cores on a hex core i7-4930k are used. To force 12 cores (hyperthreading) you need to explicitly tell ADF to do so. The manual says not to, however. I haven't done any performance tests, BUT without specifying 12 cores the node is only running at half load.

12 January 2015

606. Downloading programs from iview (Australian Broadcasting Corporation): python-iview

 I did this on debian jessie.

I found the Ep 7 Season 2 episode of The Checkout so well worth watching that I wanted to keep a copy of it, which lead me to search for ways of downloading programs from iview.

Get python-iview from https://github.com/vadmium/python-iview. You can try this direct link: https://github.com/vadmium/python-iview/archive/master.zip

Then unzip and install (you might need to install some of the dependencies listed on the github page first):
me@niobium:~/tmp/python-iview/python-iview-master$ sudo python3 setup.py install
running install
running build
running build_py
running build_scripts
running install_lib
creating /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/comm.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/flvlib.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/config.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/hds.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/parser.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/fetch.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/__init__.py -> /usr/local/lib/python3.4/dist-packages/iview
copying build/lib/iview/utils.py -> /usr/local/lib/python3.4/dist-packages/iview
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/comm.py to comm.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/flvlib.py to flvlib.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/config.py to config.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/hds.py to hds.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/parser.py to parser.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/fetch.py to fetch.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/__init__.py to __init__.cpython-34.pyc
byte-compiling /usr/local/lib/python3.4/dist-packages/iview/utils.py to utils.cpython-34.pyc
running install_scripts
copying build/scripts-3.4/iview-gtk -> /usr/local/bin
copying build/scripts-3.4/iview-cli -> /usr/local/bin
changing mode of /usr/local/bin/iview-gtk to 755
changing mode of /usr/local/bin/iview-cli to 755
running install_data
copying iview-gtk.desktop -> /usr/share/applications
running install_egg_info
Writing /usr/local/lib/python3.4/dist-packages/iview-0.2.egg-info

Start it from within gnome, select your show and download:
 Easy.

08 January 2015

605. Posting your own academic articles on your website (self-archiving)

I've been meaning to put copies of my own articles on my departmental website, but haven't had time to look into the legal aspects until now.

The publishers that matter to me in order are Wiley, ACS, RSC, Elsevier, and Taylor and Francis.

Here are their policies:

Wiley (also see this)
Under Wiley copyright, authors are permitted to self-archive the peer-reviewed (but not final) version of a contribution on the contributor's personal website, [..], subject to an embargo period of 12 months for scientific, technical, and medical (STM) journals [..] following publication of the final contribution. Authors should be aware that Wiley’s society partners set policies independently, and authors should refer to individual journal pages as the authority on copyright policy.
Summary: you can post the article version containing improvements following peer-review twelve months after it was published online (my interpretation), but you can't post the galley proof, on your own website.

Elsevier
Accepted Author Manuscript (AAM) Definition: An accepted author manuscript (AAM) is the author’s version of the manuscript of an article that has been accepted for publication and which may include any author-incorporated change s suggested through the processes of submission processing, peer review, and editor-author communications. AAMs do not include other publisher value-added contributions such as copy-editing, formatting, technical enhancements and (if relevant) pagination. Elsevier's AAM Policy: Authors retain the right to use the accepted author manuscript for personal use, internal institutional use and for permitted scholarly posting provided that these are not for purposes of commercial use or systematic distribution. [..] Permitted scholarly posting: Voluntary posting by an author on open websites operated by the author or the author’s institution for scholarly purposes, as determined by the author, or (in connection with preprints) on preprint servers.
Summary: you can post the article version containing improvements following peer-review on your own website as long as it's not for commercial purposes.

Royal Society of Chemistry (RSC)
When the author accepts the exclusive Licence to Publish for a journal article, he/she retains certain rights concerning the deposition of the whole article. He/she may: [..] Make available the PDF of the final published article via the personal website(s) of the author(s) or via the Intranet(s) of the organisation(s) where the author(s) work(s). No embargo period applies. [..] Deposition of the article on any website acting as a collection of personal articles from multiple scientists is explicitly prohibited.
Surprisingly, it sounds like it's actually OK to upload the version which is found on the RSC website -- which sounds too good to be true. Be your own judge.

American Chemical Society (ACS) (but also this)
Note that ACS does not grant permission for these materials or provide the following:
However, on page 6 here:
6. Posting Submitted Works on Websites and Repositories: A digital file of the Submitted Work may be made publicly available on websites or repositories (e.g. the Author’s personal website, preprint servers, university networks or primary employer’s institutional websites, third party institutional or subject-based repositories, and conference websites that feature presentations by the Author(s) based on the Submitted Work) under the following conditions: * The Author(s) have received written confirmation (via letter or email) from the appropriate ACS journal editor that the posting does not conflict with journal prior publication/embargo policies (see http://pubs.acs.org/page/policy/prior/index.html ) * The posting must be for non-commercial purposes and not violate the ACS' "Ethical Guidelines to Publication of Chemical Research" (see http://pubs.acs.org/ethics ). * If the Submitted Work is accepted for publication in an ACS journal, then the following notice should be included at the time of posting, or the posting amended as appropriate: "This document is the unedited Author’s version of a Submitted Work that was subsequently accepted for publication in [JournalTitle], copyright © American Chemical Society after peer review. To access the final edited and published work see [insert ACS Articles on Request author-directed link to Published Work, see http://pubs.acs.org/page/policy/articlesonrequest/index.html ]."
My reading is that it's only ok to post a pre-review version, and only if the above note is included, and only if you have received explicit permission from the editor of the journal. The ACS, which should represent us chemists, have by far the most draconian rules.

[Note that section 7 (which I haven't reproduced) covers 'accepted and published works', which is only permitted in case posting is mandated and only under certain conditions.]

See also item 19 here: http://pubs.acs.org/page/copyright/journals/faqs.html#
 It says pretty much the same thing. Note also that they tell you that you're allowed to link to the journal website, and that you're allowed to use the DOI.

How very generous.

Taylor and Francis
Author’s Original Manuscript (AOM) This is your original manuscript (often called a "preprint"), and you can share this as much or as little as you like. If you do decide to post it anywhere, including onto an academic networking site, we would recommend you use an amended version of the wording below to encourage usage and citation of your final, published article. Accepted Manuscript (AM) As a Taylor & Francis author, you can post your Accepted Manuscript (AM) on your departmental or personal website at any point after publication of your article (this includes posting to Facebook, Google groups, and LinkedIn, and linking from Twitter). Version of Record (VoR) This is your published article. We recommend that you include a link to the VoR from anywhere you have posted your AOM or AM using the text above. Please do not post the PDF of the VoR unless you have chosen to publish your article open access. This also applies to any author who has published with us in the past.
Summary: you can post the accepted manuscript, but not the journal version.