! 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