File: asc2rf.f

package info (click to toggle)
openmolcas 25.02-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 170,204 kB
  • sloc: f90: 498,088; fortran: 139,779; python: 13,587; ansic: 5,745; sh: 745; javascript: 660; pascal: 460; perl: 325; makefile: 17
file content (94 lines) | stat: -rw-r--r-- 4,392 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
************************************************************************
* This file is part of OpenMolcas.                                     *
*                                                                      *
* OpenMolcas is free software; you can redistribute it and/or modify   *
* it under the terms of the GNU Lesser General Public License, v. 2.1. *
* OpenMolcas is distributed in the hope that it will be useful, but it *
* is provided "as is" and without any express or implied warranties.   *
* For more details see the full text of the license in the file        *
* LICENSE or in <http://www.gnu.org/licenses/>.                        *
*                                                                      *
* Copyright (C) 2003, Per-Olof Widmark                                 *
************************************************************************
************************************************************************
*                                                                      *
* This program converts a runfile into an ascii file.                  *
*                                                                      *
*----------------------------------------------------------------------*
*                                                                      *
* Author:  Per-Olof Widmark                                            *
* Written: July 2003                                                   *
*          Lund University, Sweden                                     *
*                                                                      *
************************************************************************
      Program Asc2RF
      Use RunFile_data, Only: lw, TypDbl, TypInt, TypLgl, TypStr
*----------------------------------------------------------------------*
* Declare local variables.                                             *
*----------------------------------------------------------------------*
      Integer      MxBuf
      Parameter    ( MxBuf = 1024*1024 )
      Real*8       dBuf(MxBuf)
      Integer      iBuf(MxBuf)
      Character    cBuf(MxBuf)

      Character*18 Rec
      Character*(lw) Label
      Integer      Length
      Integer      Type
      Integer      iRc
      Integer      iOpt
      Integer      i
      Call Init_LinAlg
      Call PrgmInit('Asc2RF')
*----------------------------------------------------------------------*
* Create RunFile.                                                      *
*----------------------------------------------------------------------*
      Call NameRun('RUNFILE')
      iOpt=0
      iRc=0
      Call MkRun(iRc, iOpt)
*----------------------------------------------------------------------*
* Open input file.                                                     *
*----------------------------------------------------------------------*
      Open(Unit=9, File='RUNASCII', Status='OLD', Err=999)
*----------------------------------------------------------------------*
* Populate runfile.                                                    *
*----------------------------------------------------------------------*
  100 Continue
      Read(9,'(a18)',End=998,Err=999) Rec
         if(Rec(1:1).eq.'#') GoTo 100
         If(Rec(1:1).ne.'<') GoTo 999
         If(Rec(18:18).ne.'>') GoTo 999
         Label=Rec(2:17)
         Read(9,*) Length,Type
         Write(*,*) 'Processing:',Rec,Length,Type


         If(Type.eq.TypInt) Then
            Read(9,*) (iBuf(i),i=1,Length)
            Call ixWrRun(iRc,Label, iBuf,Length, iOpt)
         Else If(Type.eq.TypDbl) Then
            Read(9,*) (dBuf(i),i=1,Length)
            Call dxWrRun(iRc,Label, dBuf,Length, iOpt)
         Else If(Type.eq.TypStr) Then
            Read(9,'(64a1)') (cBuf(i),i=1,Length)
            Call cxWrRun(iRc,Label, cBuf,Length, iOpt)
         Else If(Type.eq.TypLgl) Then
            Write(*,*) 'Cannot handle type logical'
            Stop
         Else
            Write(*,*) 'Unknown data type:',Type
         End If
         GoTo 100
*----------------------------------------------------------------------*
*                                                                      *
*----------------------------------------------------------------------*
  998 Continue
      Close(9)
      Stop

  999 Continue
      Write(*,*) 'An error occured'
      Stop
      End