Saturday, March 30, 2013

Compliing and using LLNL Silo on Mac OS X and linking Fortran program

Download hdf5, uncompress, and then install using ./configure --prefix=/opt/hdf5
make
make install
Download szip, uncompress and then install using ./configure --prefix=/opt/szip
make
make install
Download (silo), uncompress, then install using ./configure --enable-fortran --with-hdf5=/opt/hdf5/include/,/opt/hdf5/lib --with-szlib=/opt/szip/ --prefix=/opt/silo/ --disable-silex
make
make install
You should find the silo libraries in /opt/silo/lib. To make sure you have the fortran routines you can run in /opt/silo/lib nm libsiloh5.a | grep dbcreate which should show 00000000000039f0 T _dbcreate_ <==== this shows you have the fortran routines
0000000000019078 S _dbcreate_.eh
To compile a program that uses silo.h run a command similar to gfortran -I /opt/silo/include/ -L /opt/silo/lib/ -L /opt/hdf5/lib/ -L /opt/szip/lib/ -o fbasic fbasic.f -lsiloh5 -lhdf5 -lsz -lz -lstdc++ that compiles fbasic.f, which is an example program provided by LLNL (see below)

fbasic.f c-----------------------------------------------------------------------------
c
c Copyright (c) 2000 - 2008, Lawrence Livermore National Security, LLC
c Produced at the Lawrence Livermore National Laboratory
c LLNL-CODE-400142
c All rights reserved.
c
c This file is  part of VisIt. For  details, see https://visit.llnl.gov/.  The
c full copyright notice is contained in the file COPYRIGHT located at the root
c of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
c
c Redistribution  and  use  in  source  and  binary  forms,  with  or  without
c modification, are permitted provided that the following conditions are met:
c
c  - Redistributions of  source code must  retain the above  copyright notice,
c    this list of conditions and the disclaimer below.
c  - Redistributions in binary form must reproduce the above copyright notice,
c    this  list of  conditions  and  the  disclaimer (as noted below)  in  the
c    documentation and/or other materials provided with the distribution.
c  - Neither the name of  the LLNS/LLNL nor the names of  its contributors may
c    be used to endorse or promote products derived from this software without
c    specific prior written permission.
c
c THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS "AS IS"
c AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO, THE
c IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE
c ARE  DISCLAIMED. IN  NO EVENT  SHALL LAWRENCE  LIVERMORE NATIONAL  SECURITY,
c LLC, THE  U.S.  DEPARTMENT OF  ENERGY  OR  CONTRIBUTORS BE  LIABLE  FOR  ANY
c DIRECT,  INDIRECT,   INCIDENTAL,   SPECIAL,   EXEMPLARY,  OR   CONSEQUENTIAL
c DAMAGES (INCLUDING, BUT NOT  LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR
c SERVICES; LOSS OF  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
c CAUSED  AND  ON  ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT
c LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY  WAY
c OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
c DAMAGE.
c
c-----------------------------------------------------------------------------

      program main
      implicit none
      include "silo.inc"
      integer dbfile, ierr

c The 11 and 22 arguments represent the lengths of strings
      ierr = dbcreate("fbasic.silo", 11, DB_CLOBBER, DB_LOCAL,
     . "Comment about the data", 22, DB_HDF5, dbfile)

      if(dbfile.eq.-1) then
          write (6,*) 'Could not create Silo file!\n'
          goto 10000
      endif

c Add other Silo calls here.

c Close the Silo file.
      ierr = dbclose(dbfile)
10000 stop
      end 

Monday, March 18, 2013

Remove URL and DOI from Latex/Bibtex references when using Zotero

When creating a bibliography in Latex sometimes the url and doi fields are added to the references. If you don't want this to occur you can modify the way Zotero exports the .bib file so the fields are ignored. You need to modify the file in ~/Library/Application\ Support/Firefox/Profiles/uawt2ewt.default/zotero/translators/BibTeX.js Around line 2225 you need to change the code from for(var field in fieldMap) {
   if(item[fieldMap[field]]) {
     writeField(field, item[fieldMap[field]]);
   }
}
to for(var field in fieldMap) {
   if (field == "url") continue; // Added to remove url
   if (field == "doi") continue; // Added to remove doi
   if(item[fieldMap[field]]) {
     writeField(field, item[fieldMap[field]]);
   }
}
Now when you export your .bib files the url and doi fields will be ignored.