1C*********************************************************************** 2C LHS (Latin Hypercube Sampling) UNIX Library/Standalone. 3C Copyright (c) 2004, Sandia Corporation. Under the terms of Contract 4C DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 5C retains certain rights in this software. 6C 7C This software is distributed under the GNU Lesser General Public License. 8C For more information, see the README file in the LHS directory. 9C*********************************************************************** 10C Last change: SLD 27 Mar 101 8:54 am 11C**************************************************************** 12C SUBROUTINE CHKSTR CHECKS PARAMETERS OF THE UNIFORM* AND THE 13C LOGUNIFORM* DISTRIBUTIONS FOR CONSISTENCY 14C 15!LHS_EXPORT_DEC ATTRIBUTES DLLEXPORT::CHKSTR 16 SUBROUTINE CHKSTR(PAR,CARD) 17C INCLUDE 'KILLFILE.INC' GDW-96 18 USE KILLFILE 19cc only 2001 sld changes were comments sld01 20cc CHKSTR is called from: RDPAR,RDPAR2 sld01 21cc CHKSTR does not call any other external routines sld01 22C 23C INCLUDE 'PARMS.INC' GDW-96 24 USE PARMS 25cc PARMS provides: LENC,NINTMX sld01 26C 27C These statements removed to make modules work - GDW-96 28c COMMON/STAR/NSUBOB(NINTMX),SUBINT(NINTMX+1),NINT 29 USE STAR 30cc STAR provides: NINT,SUBINT,NSUBOB sld01 31c COMMON/CHRCRD/CRDSTR 32 USE CHRCRD 33cc CHRCRD provides: CRDSTR sld01 34c COMMON/OBSTR/NSTR,NOBSTR(NVAR) 35 USE OBSTR 36cc OBSTR provides: NSTR,NOBSTR sld01 37C 38 IMPLICIT DOUBLE PRECISION (A-H,O-Z) 39 CHARACTER PAR*(*),CARD*(LENC),PLOG*3 40c CHARACTER*(LENC) CRDSTR(NVAR) 41 PARAMETER (PLOG='LOG') 42C 43 IF(NINT.EQ.0)THEN 44 WRITE(4,9001)PAR 45 WRITE(99,9001)PAR 46 KLLERR = .TRUE. 47 RETURN 48C 49 ELSE IF(NINT.GT.NINTMX)THEN 50 WRITE(4,9002)PAR,NINT,NINTMX 51 WRITE(99,9002)PAR,NINT,NINTMX 52 KLLERR = .TRUE. 53 RETURN 54C 55 ELSE 56 WRITE(8)NINT 57C 58 ENDIF 59C 60 NSTR=NSTR+1 61 DO 100 I=1,NINT 62C 63 IF(PAR(1:3).EQ.PLOG.AND.SUBINT(I).LE.0.0)THEN 64 WRITE(4,9003)PAR,I,SUBINT(I) 65 WRITE(99,9003)PAR,I,SUBINT(I) 66 KLLERR = .TRUE. 67 RETURN 68C 69 ELSE IF(SUBINT(I).GE.SUBINT(I+1))THEN 70 WRITE(4,9004)PAR,I,SUBINT(I),SUBINT(I+1) 71 WRITE(99,9004)PAR,I,SUBINT(I),SUBINT(I+1) 72 KLLERR = .TRUE. 73 RETURN 74C 75 ELSE IF(NSUBOB(I).LT.0)THEN 76 WRITE(4,9005)PAR,I 77 WRITE(99,9005)PAR,I 78 KLLERR = .TRUE. 79 RETURN 80C 81 ELSE 82 NOBSTR(NSTR)=NOBSTR(NSTR)+NSUBOB(I) 83 WRITE(8)NSUBOB(I),SUBINT(I),SUBINT(I+1) 84C 85 ENDIF 86C 87 100 CONTINUE 88C 89 CRDSTR(NSTR)=CARD 90C 91 RETURN 92C 93 9001 FORMAT('1',5X,'FOR THE ',A,'DISTRIBUTION THE NUMBER OF ', 94 1 'SUBINTERVALS IS ZERO') 95 9002 FORMAT('1',5X,'FOR THE ',A,'DISTRIBUTION THE NUMBER OF ', 96 1 'SUBINTERVALS REQUESTED ',I3,/,6X,'IS GREATER THAN THE ', 97 2 'MAXIMUM NUMBER OF SUBINTERVALS CURRENTLY PERMITTED ',I3, 98 3 /,6X,'PLEASE CONSULT THE USER MANUAL FOR INSTRUCTIONS ', 99 4 'ON HOW TO ALLOW MORE SUBINTERVALS') 100 9003 FORMAT('1',5X,'FOR THE ',A,'DISTRIBUTION THE SUBINTERVAL ', 101 1 'LIMIT FOR SUBINTERVAL ',I3,/,6X,'IS LESS THAN OR ', 102 2 'EQUAL TO ZERO ',G20.10) 103 9004 FORMAT('1',5X,'ON THE ',A,'DISTRIBUTION FOR SUBINTERVAL ', 104 1 I3,' THE LOWER LIMIT ',G20.10,/,6X,'IS GREATER ', 105 2 'THAN OR EQUAL TO THE UPPER LIMIT ',G20.10) 106 9005 FORMAT('1',5X,'FOR THE ',A,'DISTRIBUTION SUBINTERVAL ',I3, 107 1 ' REQUESTED A NEGATIVE NUMBER OF OBSERVATIONS') 108C 109 END 110