V3FIT
open_output_files.f
1  SUBROUTINE open_output_files (extension, iseq, lmac, lscreen,
2  1 lfirst, lwrite)
3  USE safe_open_mod
4  USE vparams, ONLY: nmac, nthreed, nmac0, nthreed0
5  IMPLICIT NONE
6 C-----------------------------------------------
7 C D u m m y A r g u m e n t s
8 C-----------------------------------------------
9  INTEGER :: iseq
10  CHARACTER(LEN=*) :: extension
11  LOGICAL :: lmac, lscreen, lfirst, lwrite
12 C-----------------------------------------------
13 C L o c a l V a r i a b l e s
14 C-----------------------------------------------
15  INTEGER :: iread, inthreed=0, imac0=0
16  CHARACTER(LEN=120) :: mac_file, threed1_file
17 C-----------------------------------------------
18 !
19 ! OPEN FILES FOR READING, WRITING
20 !
21  threed1_file = 'threed1.'//extension
22  mac_file = 'mac.'//extension
23 
24 ! PRINT *,'lwrite: ', lwrite,' Threed1 file: ', TRIM(threed1_file)
25 
26  IF (lwrite) THEN
27  INQUIRE(file=threed1_file, opened=lfirst)
28 ! PRINT *,' lfirst: ', lfirst
29  lfirst = .not.lfirst
30  IF (.NOT.lfirst) RETURN
31 
32  IF (lscreen) WRITE (*, '(33('' -''))')
33  nthreed = nthreed0
34  CALL safe_open(nthreed, iread, threed1_file, 'new',
35  1 'formatted')
36  IF (iread .ne. 0) THEN
37  IF (iseq .eq. 0 .and. lscreen) print *,
38  1 ' VMEC OUTPUT FILES ALREADY EXIST: OVERWRITING THEM ...'
39  CALL safe_open(nthreed, inthreed, threed1_file,
40  1 'replace', 'formatted')
41  ENDIF
42 
43  nmac = max(nmac0, nthreed)
44  IF (lmac) THEN
45  CALL safe_open(nmac, imac0, mac_file, 'replace',
46  1 'formatted')
47  END IF
48  IF (inthreed.ne.0 .or. imac0.ne.0) THEN
49  print *,' nthreed = ', nthreed, ' istat_threed = ',
50  1 inthreed, ' nmac0 = ', nmac,' istat_mac0 = ', imac0
51  print *, 'Error opening output file in VMEC ',
52  1 'open_output_files'
53  stop 10
54  ENDIF
55  ENDIF
56 
57  END SUBROUTINE open_output_files