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