Skip to content

Commit 217fde6

Browse files
committed
better large field support
1 parent 11b4b38 commit 217fde6

2 files changed

Lines changed: 27 additions & 3 deletions

File tree

Source/LK1/L1A/LOADB.f90

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,9 +1123,15 @@ SUBROUTINE TO_UPPER_LINE(LINE)
11231123
CHARACTER(26), parameter :: LOW = 'abcdefghijklmnopqrstuvwxyz'
11241124

11251125
DO I = 1,256
1126+
! remove $
1127+
IF (LINE(I:I) == '$') THEN
1128+
LINE(I:) = ' '
1129+
GOTO 100 ! break
1130+
ENDIF
1131+
11261132
J = index(LOW, LINE(I:I)) ! Is ith character in LOW
11271133
IF (J>0) LINE(I:I) = UPP(J:J) ! Yes, then subst with UPP
1128-
ENDDO
1134+
100 ENDDO
11291135
END SUBROUTINE TO_UPPER_LINE
11301136
!end function to_upper
11311137

@@ -1179,5 +1185,4 @@ SUBROUTINE READ_BDF_LINE(IN1, IOCHK, LINE)
11791185
100 ENDDO
11801186

11811187
101 FORMAT(A)
1182-
!write(err,*) 'returning:', LINE
11831188
END SUBROUTINE READ_BDF_LINE

Source/LK1/L1U/NEXTC2.f90

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ SUBROUTINE NEXTC2 ( PARENT, ICONTINUE, IERR, CHILD )
6565
CHILD(1:) = 'z'
6666
OLDTAG(1:) = ' '
6767

68-
IERR = 0
68+
IERR = 0
6969

7070
! Make units for writing errors the error file and output file
7171
OUNT(1) = ERR
@@ -83,11 +83,30 @@ SUBROUTINE NEXTC2 ( PARENT, ICONTINUE, IERR, CHILD )
8383
IF (NEWTAG == OLDTAG) THEN
8484
ICONTINUE = 1
8585
ELSE IF ((OLDTAG(1:1) == '*') .AND. (NEWTAG(1:1) == ' ') .AND. (OLDTAG(2:8) == NEWTAG(2:8))) THEN
86+
! large field
8687
ICONTINUE = 1
8788
ELSE IF ((OLDTAG(1:1) == ' ') .AND. (NEWTAG(1:1) == '*') .AND. (OLDTAG(2:8) == NEWTAG(2:8))) THEN
89+
! large field
8890
ICONTINUE = 1
91+
ELSE IF ((NEWTAG(1:1) /= '*') .AND. (NEWTAG(1:1) /= '$')) THEN
92+
! different card type (e.g., LOAD -> FORCE
93+
BACKSPACE(IN1)
94+
CARD = TCARD
95+
RETURN
8996
ELSE
97+
! can't find the continuation marker. FATAL :)
9098
BACKSPACE(IN1)
99+
WRITE(F06,102) OLDTAG
100+
WRITE(ERR,102) OLDTAG
101+
WRITE(F06,103)
102+
WRITE(ERR,103)
103+
WRITE(F06,104) 'CHILD1:', CHILD1
104+
WRITE(ERR,104) 'CHILD1:', CHILD1
105+
FLUSH(F06)
106+
FLUSH(ERR)
107+
FATAL_ERR = FATAL_ERR + 1
108+
CALL OUTA_HERE('Y') ! FATAL error
109+
RETURN
91110
RETURN
92111
ENDIF
93112

0 commit comments

Comments
 (0)