-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathreadSolution.f90
68 lines (55 loc) · 2.25 KB
/
readSolution.f90
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
!> @file readSolution.f90
!!
!! Input of flow solution (in binary format).
!
! *****************************************************************************
!
! (c) J. Blazek, CFD Consulting & Analysis, www.cfd-ca.de
! Created February 25, 2014
! Last modification: May 24, 2014
!
! *****************************************************************************
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License
! as published by the Free Software Foundation; either version 2
! of the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program; if not, write to the Free Software
! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
!
! *****************************************************************************
!> Reads in previous solution in order to restart the simulation. It also
!! reads the initial residual and number of previous iterations.
!!
subroutine ReadSolution
use ModControl
use ModFiles
use ModGeometry
use ModPhysics
use ModPlotQuant
use ModInterfaces, only : ErrorMessage
implicit none
! local variables
integer :: errFlag, i, n, nnodesDum, nconvDum
! *****************************************************************************
open(unit=ifRsti, file=fnRsti, status="old", action="read", &
form="unformatted", iostat=errFlag)
if (errFlag /= 0) call ErrorMessage( "cannot open solution file" )
! dimensions (for checking purposes)
read(ifRsti) nnodesDum,nconvDum
if (nnodesDum /= nnodes) &
call ErrorMessage( "no. of nodes differs from the grid file" )
if (nconvDum /= nconv) &
call ErrorMessage( "different number of conservative variables" )
! initial residual, iteration # and solution
read(ifRsti) drho1,iter
read(ifRsti) ((cv(n,i), i=1,nnodes), n=1,nconv)
close(ifRsti)
end subroutine ReadSolution