diff --git a/merge.data.NZ-fhv1.R b/merge.data.NZ-fhv1.R
new file mode 100644
index 0000000000000000000000000000000000000000..85be22a36348ed14898a94e3c4608954c2e741a9
--- /dev/null
+++ b/merge.data.NZ-fhv1.R
@@ -0,0 +1,99 @@
+### MERGE NZ DATA
+rm(list = ls()); source("./R/format.function.R"); library(reshape)
+
+#########################
+## READ DATA
+####################
+### read individuals tree data
+data.nz <- read.csv('./data/raw/DataNVS/nz_treedata_growth_130801.csv',header=TRUE,stringsAsFactors=FALSE,skip = 9); data.nz <- data.nz[,-1]
+data.trait <- read.csv('./data/raw/DataNVS/nz_traits_130801.csv',,header=TRUE,stringsAsFactors=FALSE); data.trait <- data.trait[,-1]
+data.plot <- read.csv('./data/raw/DataNVS/nz_plotinfo_130801.csv',,header=TRUE,stringsAsFactors=FALSE); data.plot <- data.plot[,-1]
+colnames(data.trait)[1] <- "sp"
+data.plot$plid <- gsub("__", "_",data.plot$plid); data.plot$plid <- gsub("_", ".",data.plot$plid) ## Replace all underscores with a single dot
+data.nz$plid <- gsub("__", "_",data.nz$plid); data.nz$plid <- gsub("_", ".",data.nz$plid) ## Replace all underscores with a single dot
+
+######################################
+## MASSAGE TRAIT DATA
+############################
+## Maximum height per species is already available from data.trait (in m); so no sd's and only obs per spp
+data.max.height <- data.frame(code=data.trait[["sp"]],Max.height.mean=log10(data.trait[["height.m"]]),Max.height.sd=NA,Max.height.nobs=1)
+write.csv(data.max.height,file="./data/process/data.max.height.nz.csv") ## I was planning to save processed data in that folder
+
+################################################################
+## FORMAT INDIVIDUAL TREE DATA
+#############
+
+## change unit and names of variables to be the same in all data for the tree 
+data.nz$G <- 10*(data.nz[["D1"]]-data.nz[["D0"]])/(data.nz[["t1"]]-data.nz[["t0"]]) ## diameter growth in mm per year
+data.nz$year <- (data.nz[["t1"]]-data.nz[["t0"]]) ## number of year between measurement
+data.nz$D <- data.nz[["D0"]] ## diameter in mm convert to cm
+data.nz$dead <- rep(NA,length(data.nz[["sp"]])) ## dummy variable for dead tree 0 alive 1 dead - MISSING
+data.nz$sp <- data.nz$sp
+data.nz$plot <- data.nz$plid 
+data.nz$htot <- rep(NA,length(data.nz[["sp"]])) ## I ASSUME THE "height.m" IN data.trait IS A MAX HEIGHT, WHICH IS NOT WHAT WE WANT HERE?
+data.nz$tree.id <- data.nz[["tag"]]; data.nz$tree.id <- gsub("__", "_",data.nz$tree.id); data.nz$tree.id <- gsub("_", ".",data.nz$tree.id) ## tree unique id
+
+#### change coordinates system of Easting Northing to be in lat long WGS84 - DON'T KNOW THE EPSG CODE HERE
+data.nz <- merge(data.plot[,c(1,3,4)], data.nz, by = "plid")
+library(sp); 
+#library(dismo); library(rgdal); 
+data.sp <- data.nz[,c("tree.id","Easting","Northing")]
+coordinates(data.sp) <- c("Easting", "Northing") # define x y
+proj4string(data.sp) <- CRS("+init=epsg:23030")  # define projection system of our data ## EPSG CODE 23030 ED50 / UTM zone 30N
+summary(data.sp)
+
+detach(package:rgdal)
+data.sp2 <- spTransform(data.sp,CRS("+init=epsg:4326")) ## change projection in WGS84 lat lon
+data.nz$Lon <- coordinates(data.sp2)[,"Easting"]; data.nz$Lat <- coordinates(data.sp2)[,"Northing"]
+## ## plot on world map
+## library(rworldmap)
+## newmap <- getMap(resolution = "coarse")  # different resolutions available
+## plot(newmap)
+## points(data.sp2,cex=0.2,col="red")
+rm(data.sp,data.sp2)
+
+############################
+## DON'T KNOW WHICH VARIABLE TO USE FOR ECOREGION =(
+greco <- greco[,c("tree.id","BIOME","eco_code")]
+
+#######################
+## variable percent dead - MISSING
+data.nz$perc.dead <- NA
+
+###########################################################
+### PLOT SELECTION FOR THE ANALYSIS
+###################
+data.nz <- merge(data.nz, data.plot[,c(1,8:10)], by = "plid")
+colnames(data.nz)[colnames(data.nz) %in% c("mat","map")] <- c("MAT","PP")
+#colnames(data.nz)[names(data.nz) =="eco_codemerged"  ] <- c("ecocode")
+vec.abio.var.names <-  c("MAT","PP")
+vec.basic.var <-  c("tree.id","sp","spname","plot","ecocode","D","G","dead","year","htot","Lon","Lat","perc.dead")
+data.tree <- subset(data.nz,select=c(vec.basic.var,vec.abio.var.names))
+
+##############################################
+## COMPUTE MATRIX OF COMPETITION INDEX WITH SUM OF BA PER SPECIES IN EACH PLOT in m^2/ha without the target species
+###########################
+data.BA.SP <- BA.SP.FUN(id.tree=as.vector(data.nz[["tree.id"]]), diam=as.vector(data.nz[["D"]]),
+	sp=as.vector(data.nz[["sp"]]), id.plot=as.vector(data.nz[["plot"]]),
+	weights=as.vector(1/(pi*(0.5*data.nz[["D0"]])^2)), weight.full.plot=NA)
+
+## change NA and <0 data for 0
+data.BA.SP[is.na(data.BA.SP)] <- 0
+data.BA.SP[,-1][data.BA.SP[,-1]<0] <- 0
+
+### CHECK IF sp and sp name for column are the same
+if(sum(!(names(data.BA.SP)[-1] %in% unique(data.nz[["sp"]]))) >0) stop("competition index sp name not the same as in data.tree")
+
+#### compute BA tot for all competitors
+BATOT.COMPET <- apply(data.BA.SP[,-1],MARGIN=1,FUN=sum,na.rm=TRUE)
+data.BA.SP$BATOT.COMPET <- BATOT.COMPET
+### create data frame
+names(data.BA.SP) <- c("tree.id",names(data.BA.SP)[-1])
+data.BA.sp <- merge(data.frame(tree.id=dataIFN.spain[["tree.id"]],ecocode=dataIFN.spain[["ecocode"]]),data.BA.SP,by="tree.id",sort=FALSE)
+## test
+if(sum(!data.BA.sp[["tree.id"]] == data.tree[["tree.id"]])>0) stop("competition index not in the same order than data.tree")
+
+## save everything as a list
+list.nz <- list(data.tree=data.tree,data.BA.SP=data.BA.sp,data.traits=data.trait)
+save(list.nz,file="./data/process/list.nz.Rdata")
+