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