V3FIT
heading.f
1  SUBROUTINE heading(extension, time_slice, iseq_count, lmac,
2  1 lscreen, lwrite)
3  USE vmec_main, ONLY: rprec
4  USE vparams, ONLY: nthreed, nmac
5  USE vmec_params, ONLY: version_
6  USE date_and_computer
7  USE parallel_include_module, ONLY: grank
8  IMPLICIT NONE
9 C-----------------------------------------------
10 C D u m m y A r g u m e n t s
11 C-----------------------------------------------
12  INTEGER :: iseq_count
13  REAL(rprec) :: time_slice
14  CHARACTER(LEN=*) :: extension
15  LOGICAL :: lmac, lscreen, lwrite
16 C-----------------------------------------------
17 C L o c a l P a r a m e t e r s
18 C-----------------------------------------------
19  CHARACTER(LEN=100), PARAMETER ::
20  & banner = ' THIS IS PARVMEC (PARALLEL VMEC), VERSION '
21  CHARACTER(LEN=*), PARAMETER :: VersionID1 =
22  & ' Lambda: Full Radial Mesh. L-Force: hybrid full/half.'
23 C-----------------------------------------------
24 C L o c a l V a r i a b l e s
25 C-----------------------------------------------
26  INTEGER :: imon, nout
27  CHARACTER(LEN=10) :: date0, time0, zone0
28  CHARACTER(LEN=50) :: dateloc, Version
29  LOGICAL :: lfirst
30 C-----------------------------------------------
31 !
32 ! Open output files
33 !
34  IF (grank .NE. 0) THEN
35  lscreen = .false.
36  END IF
37 
38  CALL open_output_files(extension, iseq_count, lmac, lscreen,
39  & lfirst, lwrite)
40 
41  IF (.NOT.lfirst .OR. .NOT.lwrite) RETURN
42 
43 ! FORTRAN-90 ROUTINE
44  CALL date_and_time(date0, time0, zone0)
45  READ(date0(5:6),'(i2)') imon
46  WRITE(dateloc,1000) months(imon), date0(7:8), date0(1:4),
47  & time0(1:2), time0(3:4), time0(5:6)
48 
49  IF (lscreen) THEN
50  CALL getcomputerinfo
51 
52  version = trim(adjustl(version_))
53  WRITE (nthreed,1002) trim(banner), trim(version),
54  & trim(versionid1), trim(computer),
55  & trim(os), trim(os_release), trim(dateloc)
56 
57  IF (lfirst) THEN
58  WRITE (*,1001) iseq_count + 1, time_slice, trim(extension)
59  WRITE (*,1003) trim(banner), trim(version),
60  & trim(versionid1), trim(computer), trim(os),
61  & trim(os_release), trim(dateloc)
62  END IF
63  ENDIF
64 
65  DO nout = nthreed, nthreed + 1
66  imon = nout
67  IF (imon .eq. nthreed + 1) THEN
68  imon = nmac
69  END IF
70  IF (imon .eq. nmac .and. .not.lmac) cycle
71  WRITE (imon,1004) trim(extension), iseq_count, time_slice
72  END DO
73 
74 1000 FORMAT('DATE = ',a3,' ',a2,',',a4,' ',' TIME = ',2(a2,':'),a2)
75 1001 FORMAT(' SEQ = ',i4,' TIME SLICE',1p,e12.4/
76  & ' PROCESSING INPUT.',a)
77 1002 FORMAT(a,1x,a,/a,//,' COMPUTER: ',a,2x,' OS: ',a,2x,
78  & ' RELEASE: ',a,2x,a)
79 1003 FORMAT(1x,a,1x,a,/1x,a,//,' COMPUTER: ',a,2x,' OS: ',a,2x,
80  & ' RELEASE: ',a,2x,a)
81 1004 FORMAT(' SHOT ID.: ',a,2x,'SEQ. NO.:',i4,/,
82  & ' TIME SLICE = ',f5.0,' ms')
83 
84  END SUBROUTINE heading