C ++******************************************************************** C * C * C * C ********************************************************************** C=* FROM: SPIDER - MODULAR IMAGE PROCESSING SYSTEM. AUTHOR: J.FRANK * C=* Copyright (C) 1985-2005 Health Research Inc. * C=* * C=* HEALTH RESEARCH INCORPORATED (HRI), * C=* ONE UNIVERSITY PLACE, RENSSELAER, NY 12144-3455. * C=* * C=* Email: spider@wadsworth.org * C=* * C=* This program is free software; you can redistribute it and/or * C=* modify it under the terms of the GNU General Public License as * C=* published by the Free Software Foundation; either version 2 of the * C=* License, or (at your option) any later version. * C=* * C=* This program is distributed in the hope that it will be useful, * C=* but WITHOUT ANY WARRANTY; without even the implied warranty of * C=* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * C=* General Public License for more details. * C=* * C=* You should have received a copy of the GNU General Public License * C=* along with this program; if not, write to the * C=* Free Software Foundation, Inc., * C=* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * C=* * C ********************************************************************** C * C * C * C PURPOSE: PLOT FERMI DISTRIBUTIONS AND SUMS OF IT * C * C PARAMETERS: * C * C 0 2 3 4 5 6 7 * C23456789012345678901234567890123456789012345678901234567890123456789012 C*********************************************************************** SUBROUTINE GAUSSP INCLUDE 'CMBLOCK.INC' DIMENSION BUF(256) CHARACTER*1 NULL,WHAT,MULAD NULL=CHAR(0) CALL RDPRMI(IDIM,IDUM,NOT_USED,'PLOT X-DIMENSION') IDIM=MIN0(256,IDIM) CALL RDPRMC(WHAT,NCHAR,.TRUE., $ '(L)OWPASS, (H)IGHPASS, (B)ANDPASS (L/H/B)',NULL,IRTFLG) IF (WHAT.EQ.'H' .OR. WHAT.EQ.'L') $ CALL RDPRM2(RAD,TEMP,NOT_USED,'RADIUS') IF (WHAT.EQ.'B') CALL RDPRM2(RAD,RADH,NOT_USED, $ 'RADIUS FOR LOWPASS,RADIUS FOR HIGHPASS') CALL RDPRMC(MULAD,NCHAR,.TRUE., $ '(M)ULTIPLICATIVE,(A)DDITIVE',NULL,IRTFLG) RAD=2.*RAD**2 IF(WHAT.EQ.'B') RADH=2.*RADH**2 DO I=1,IDIM X=(I-1)/FLOAT(2*IDIM) IF(WHAT.EQ.'L') THEN BUF(I)=EXP(-X**2/RAD)*50. ELSEIF(WHAT.EQ.'H') THEN BUF(I)=(1-EXP(-X**2/RAD))*50. ELSE C IF(WHAT.EQ.'B') THEN FLOW= EXP(-X**2/RAD) IF(MULAD.EQ.'A') BUF(I)=(FLOW+(1-EXP(-X**2/RADH)))*50. IF(MULAD.EQ.'M') BUF(I)=(FLOW*(1-EXP(-X**2/RADH)))*50. ENDIF ENDDO CALL MRKUR3(BUF,IDIM,0.,0,60) END