From 7926e33951dcbc8722bf9538b1da65c9c893d197 Mon Sep 17 00:00:00 2001 From: Dave Whipp <dwhipp@dal.ca> Date: Tue, 14 Jun 2011 14:42:15 +0000 Subject: [PATCH] Moved stitch_nest to subdirectory since it is not directly called by DOUAR --- src/NEST/Makefile | 47 +++++++++++++++++++++ src/NEST/stitch_nest.f90 | 88 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100755 src/NEST/Makefile create mode 100644 src/NEST/stitch_nest.f90 diff --git a/src/NEST/Makefile b/src/NEST/Makefile new file mode 100755 index 00000000..6ad5d934 --- /dev/null +++ b/src/NEST/Makefile @@ -0,0 +1,47 @@ +# Makefile for program post + +NAME=stitch_nest +include ../Makefile.inc +INCLUDE=-I/home/dwhipp/software/DOUARW/douar_newiso/src +BIN=$(NAME)$(BITS) + +# object (combines velocity/temperature/cloud fields and update surface positions) + +OBJECTS = \ +../module_definitions.o \ +../module_threads.o \ +../define_cloud.o \ +../define_ov.o \ +../define_surface.o \ +../read_controlling_parameters.o \ +../read_input_file.o \ +stitch_nest.o \ +../toolbox.o + +OCTREE = ../OCTREE/libOctree$(BITS).a + +# make the program +# +all: $(BIN) +$(BIN): $(OBJECTS) + @echo "$(F90) $(FFLAGS) $(INCLUDE) $(OPTIONS) $(OBJECTS) -o $(BIN)" \ +1>>$(BIN).link.stdout 2>>$(BIN).link.stderr + $(F90) $(FFLAGS) $(INCLUDE) $(OPTIONS) $(OBJECTS) $(OCTREE) -o $(BIN) \ +1>>$(BIN).link.stdout 2>>$(BIN).link.stderr + +.PHONY: objclean +objclean: + rm -f *.o *.mod $(COMPILE_OUT) + +.PHONY: distclean +distclean: objclean + rm -f $(NAME) $(BIN).link.stderr $(BIN).link.stdout + +#.PHONY: more-output +#more-output: +# @echo "--" +# @echo "compiler output from `pwd`" +# @if test -e $(COMPILE_OUT) ; then ${PAGER} $(COMPILE_OUT) ; fi +# @echo "--" +# @echo "$(AR) output from `pwd`" +# @if test -e $(LIBFILE).ar ; then ${PAGER} $(LIBFILE).ar ; fi diff --git a/src/NEST/stitch_nest.f90 b/src/NEST/stitch_nest.f90 new file mode 100644 index 00000000..0266c2b1 --- /dev/null +++ b/src/NEST/stitch_nest.f90 @@ -0,0 +1,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 -- GitLab