Newer
Older
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
! Stitch nest
!
! Combines velocity fields from a coarse model and n nests at one level finer to
! update the surface positions and temperatures in the coarse model
!
! dwhipp - 06/11
program stitch_nest
use definitions
use threads
implicit none
! Variable type declaration
character (len=4) :: cistep,cnnest
double precision :: current_time,inc,step,total
integer :: err,i,istep,material0,nnest
type (box),dimension(:),allocatable :: boxes
type (cloud),dimension(:),allocatable :: ss_cl
type (cloud) :: ls_cl
type (cross_section),dimension(:),allocatable :: sections
type (face),dimension(6) :: cube_faces
type (material),dimension(:),allocatable::mat
type (nest_info) nest
type (octreev),dimension(:),allocatable :: ss_ov
type (octreev) ls_ov
type (parameters) :: params
type (sheet),dimension(:),allocatable :: ls_surf,ls_surf0,ss_surf,ss_surf0
type (thread) :: threadinfo
type (ziso) zi
!-------------------------------------------------------------------------------
write (*,*) 'Program started'
! Init some variables
current_time=0.d0
inc=0.d0
step=0.d0
total=0.d0
! Read/echo current time step and # of nests from command line
call getarg (1,cistep)
call getarg (2,cnnest)
write (*,*) 'Received command line arguments:'
write (*,*) 'istep = ',trim(cistep)
write (*,*) 'nnest = ',trim(cnnest)
! Convert character values to integers
write (istep,'(i)') cistep
write (nnest,'(i)') cnnest
! Read the coarse model input file
params%infile=trim('input_ls.txt')
call read_controlling_parameters (params,threadinfo,'main')
allocate (ls_surf (params%ns),stat=err); if (err.ne.0) call stop_run ('Error alloc ls_surf in main$')
allocate (ls_surf0 (params%ns),stat=err); if (err.ne.0) call stop_run ('Error alloc ls_surf0 in main$')
call read_input_file (params,threadinfo,material0,mat,ls_surf,boxes,sections, &
cube_faces,nest)
! Modify params%restartfile to read previous restart file
if (istep > 1) then
call int_to_char (cistep,4,istep-1)
params%restartfile='OUT/time_'//cistep//'.bin'
endif
! Read the previous coarse model restart file if istep > 1, define surface,
! cloud and ov
call define_surface (params,ls_surf,threadinfo,total,step,inc,current_time)
call define_cloud (ls_cl,params,zi)
call define_ov (ls_ov,params,threadinfo)
! Read the coarse model restart file from the current time step
! Loop through fine model(s) and read their current restart files
do i = 1,nnest
! Change params%infile
enddo
deallocate(ls_surf,ls_surf0)
! Sign off
write (*,*) 'Program execution complete'
end