98
98
LOGICAL GOODHEL(NCOMB)
100
100
DATA GOODHEL/NCOMB*.FALSE./
101
DATA (NHEL(I, 1),I=1,4) /-1,-1,-1,-1/
102
DATA (NHEL(I, 2),I=1,4) /-1,-1,-1, 1/
103
DATA (NHEL(I, 3),I=1,4) /-1,-1, 1,-1/
104
DATA (NHEL(I, 4),I=1,4) /-1,-1, 1, 1/
105
DATA (NHEL(I, 5),I=1,4) /-1, 1,-1,-1/
106
DATA (NHEL(I, 6),I=1,4) /-1, 1,-1, 1/
107
DATA (NHEL(I, 7),I=1,4) /-1, 1, 1,-1/
108
DATA (NHEL(I, 8),I=1,4) /-1, 1, 1, 1/
109
DATA (NHEL(I, 9),I=1,4) / 1,-1,-1,-1/
110
DATA (NHEL(I, 10),I=1,4) / 1,-1,-1, 1/
111
DATA (NHEL(I, 11),I=1,4) / 1,-1, 1,-1/
112
DATA (NHEL(I, 12),I=1,4) / 1,-1, 1, 1/
113
DATA (NHEL(I, 13),I=1,4) / 1, 1,-1,-1/
114
DATA (NHEL(I, 14),I=1,4) / 1, 1,-1, 1/
115
DATA (NHEL(I, 15),I=1,4) / 1, 1, 1,-1/
116
DATA (NHEL(I, 16),I=1,4) / 1, 1, 1, 1/
101
DATA (NHEL(I, 1),I=1,4) /-1,-1,-1, 1/
102
DATA (NHEL(I, 2),I=1,4) /-1,-1,-1,-1/
103
DATA (NHEL(I, 3),I=1,4) /-1,-1, 1, 1/
104
DATA (NHEL(I, 4),I=1,4) /-1,-1, 1,-1/
105
DATA (NHEL(I, 5),I=1,4) /-1, 1,-1, 1/
106
DATA (NHEL(I, 6),I=1,4) /-1, 1,-1,-1/
107
DATA (NHEL(I, 7),I=1,4) /-1, 1, 1, 1/
108
DATA (NHEL(I, 8),I=1,4) /-1, 1, 1,-1/
109
DATA (NHEL(I, 9),I=1,4) / 1,-1,-1, 1/
110
DATA (NHEL(I, 10),I=1,4) / 1,-1,-1,-1/
111
DATA (NHEL(I, 11),I=1,4) / 1,-1, 1, 1/
112
DATA (NHEL(I, 12),I=1,4) / 1,-1, 1,-1/
113
DATA (NHEL(I, 13),I=1,4) / 1, 1,-1, 1/
114
DATA (NHEL(I, 14),I=1,4) / 1, 1,-1,-1/
115
DATA (NHEL(I, 15),I=1,4) / 1, 1, 1, 1/
116
DATA (NHEL(I, 16),I=1,4) / 1, 1, 1,-1/
119
119
C GLOBAL VARIABLES
391
C This is the inverse subroutine of SOINDEX_FOR_SQUARED_ORDERS.
392
C Not directly useful, but provided nonetheless.
393
SUBROUTINE ML5_0_GET_SQUARED_ORDERS_FOR_SOINDEX(SOINDEX,ORDERS)
395
C This functions returns the orders identified by the squared
396
C split order index in argument. Order values correspond to
397
C following list of couplings (and in this order):
403
PARAMETER (NSO=1, NSQSO=1)
407
INTEGER SOINDEX, ORDERS(NSO)
412
INTEGER SQPLITORDERS(NSQSO,NSO)
413
COMMON/ML5_0_SQPLITORDERS/SQPLITORDERS
417
IF (SOINDEX.GT.0.AND.SOINDEX.LE.NSQSO) THEN
419
ORDERS(I) = SQPLITORDERS(SOINDEX,I)
424
WRITE(*,*) 'ERROR:: Stopping function ML5_0_GET_SQUARED_ORDERS_F'
426
WRITE(*,*) 'Could not find squared orders index ',SOINDEX
431
C This is the inverse subroutine of getting amplitude SO orders.
432
C Not directly useful, but provided nonetheless.
433
SUBROUTINE ML5_0_GET_ORDERS_FOR_AMPSOINDEX(SOINDEX,ORDERS)
435
C This functions returns the orders identified by the split order
436
C index in argument. Order values correspond to following list of
437
C couplings (and in this order):
443
PARAMETER (NSO=1, NAMPSO=1)
447
INTEGER SOINDEX, ORDERS(NSO)
452
INTEGER AMPSPLITORDERS(NAMPSO,NSO)
453
COMMON/ML5_0_AMPSPLITORDERS/AMPSPLITORDERS
457
IF (SOINDEX.GT.0.AND.SOINDEX.LE.NAMPSO) THEN
459
ORDERS(I) = AMPSPLITORDERS(SOINDEX,I)
464
WRITE(*,*) 'ERROR:: Stopping function ML5_0_GET_ORDERS_FOR_AMPSO'
466
WRITE(*,*) 'Could not find amplitude split orders index ',SOINDEX
471
C This function is not directly useful, but included for completene
473
INTEGER FUNCTION ML5_0_SOINDEX_FOR_AMPORDERS(ORDERS)
475
C This functions returns the integer index identifying the
476
C amplitude split orders passed in argument which correspond to
477
C the values of the following list of couplings (and in this
484
PARAMETER (NSO=1, NAMPSO=1)
493
INTEGER AMPSPLITORDERS(NAMPSO,NSO)
494
COMMON/ML5_0_AMPSPLITORDERS/AMPSPLITORDERS
500
IF (ORDERS(J).NE.AMPSPLITORDERS(I,J)) GOTO 1009
502
ML5_0_SOINDEX_FOR_AMPORDERS = I
507
WRITE(*,*) 'ERROR:: Stopping function ML5_0_SOINDEX_FOR_AMPORDER'
509
WRITE(*,*) 'Could not find squared orders ',(ORDERS(I),I=1,NSO)