SYNOPSIS: USER'S GUIDE NOW AVAILABLE ELECTRONICALLY FOR GENETIC ALGORITHM-BASED OPTIMIZATION SUBROUTINE PIKAIA Boulder, 20/01/96 Greetings PIKAIA Users; Well, it sure took longer than we were hoping, but the User's Guide for the genetic algorithm-based optimization subroutine PIKAIA (first public release, version 1.0) is finally ready. The User's Guide is officially known as NCAR Technical Note 418+IA. We also have available drivers, fitness functions and synthetic datasets for the examples discussed in Chapter 5 of the User's guide. All files are available on the HAO anonymous ftp site, where most of you already got the code from. For those who received the code directly from me, here is how you get in our anonymous ftp site; type ftp hao.ucar.edu You will be prompted for username and password; use for username: anonymous for password: your e-mail address Welcome to Unix. You need to change to the pikaia directory; to do so type cd /pub/pikaia In that directory you will find the following files pikaia.f <-- the source code, which you already have userguide.ps <-- postscript file of the User's Guide examples <-- directory containing codes for the examples examples.tar <-- Tar file of the above directory; if you do not operate on a Unix system don't bother with this one. This is the first release of the User's Guide. Any comment, suggestions and/or criticism will be greatly appreciated. So would a detailed list of typos, with page numbers... There is one simple addition that should be made to the code that most of you got sometime in the last six months. Unless you are ABSOLUTELY convinced that neither you nor any friend/acquaintance that you may pass on the code to will NEVER manage to run PIKAIA with a zero value for the seed to the random number generator, we STRONGLY suggest that you add the following line to the subroutine RNINIT, as follows: subroutine rninit( seed ) implicit none integer seed c===================================================================== c Initialize random number generator urand with given seed c===================================================================== integer iseed c Common block to communicate with urand common /rnseed/ iseed c Set the seed value iseed = seed if(iseed.le.0) iseed=123456 <-- ****** ADD THIS LINE ****** return end You may notice in the user's guide the lack of any statement to the effect that we decline any responsibility for whatever consequences resulting from the use or misuse of the routine, including but not limited to explosion and/or combustion of large pieces of machinery, loss of revenue from disabled computer system and/or network, divorce, layoffs, earthquakes, flood, mice in the basement, leaky roof, loud neighbours, plague and pestilence, and other acts of God/Allah/Vishnu/Buddha/Krishna, and so on and so forth till your ears hurt. We're all scientists here, not lawyers or politicians, so we'll take for granted that you assume responsibility for your actions. Having read this far you may start to be concerned about receiving a lot of trash e-mail from us: let us assure you that this will not happen. We have other things to do also. All you will hear from us are bug reports (hopefully not too many of those), and maybe, just maybe, upgrade news once or twice in the next 10 years. Of course if you absolutely do not want to ever hear anything from us under any circumstances, just send us e-mail to that effect and your address will be immediately removed from our users e-mail alias. Have Fun. Paul Charbonneau Barry Knapp HAO/NCAR, Boulder. ================================================================== Keep reading ! we're not quite done yet... And now, our first BUG REPORT !! It's a rather minor one actually, some of you may have already encountered it and fixed it. It didn't cause problems with the Sun/Solaris and SGI/Irix Fortran compilers, but did under VAX/VMS and Microsoft/DOS. Our thanks to Adrian Webster, Royal Observatory Edinburgh, for promptly reporting it. Here it is: ----------------------------------------------------------------- ***** BUG REPORT #1 ***** SYMPTOM: code failed to compile SUBROUTINE: report (called by pikaia) PROBLEM: declaration error for ifit(np), caused by np not yet declared as integer at that point CORRECTIVE ACTION: replace the line integer ifit(np),ivrb,ndim,n,np,nd,ig,nnew in the original code by integer np,ifit(np),ivrb,ndim,n,nd,ig,nnew ***** END OF BUG REPORT ***** ------------------------------------------------------------------