Index: MO/branches/2019/ENHANCE-03_domcfg/MODEL.CPP
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/MODEL.CPP	(revision 11627)
+++ 	(revision )
@@ -1,2 +1,0 @@
-#undef key_agrif
-#define key_mpp_mpi
Index: MO/branches/2019/ENHANCE-03_domcfg/Makefile
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/Makefile	(revision 11627)
+++ 	(revision )
@@ -1,168 +1,0 @@
-SHELL = /bin/bash
-AGRIF=NO 
-
-include make.inc
-
-PROGS = make_domain_cfg.exe
-SFMAKEDEPEND := ./sfmakedepend
-DIR_LIB=lib
-DIR_FILES=src
-DIR_PPSRC=NEMOFILES
-DIR_PPSRC_2=ppsrc
-DIR_DOC=doc
-DIR_OBJS=obj
-DIR_LIB=lib
-
-FILENAMES =$(notdir $(basename $(wildcard src/*.F90))) $(notdir $(basename $(wildcard src/*.F))) $(notdir $(basename $(wildcard src/*.c))) $(notdir $(basename $(wildcard src/*.f))) $(notdir $(basename $(wildcard src/*.f90)))
-FILES=src/*
-OBJS_AGRIF=obj/agrif2model.o
-OBJS_CREATE_DOMCFG=$(addsuffix .o,$(addprefix $(DIR_OBJS)/,$(FILENAMES)))
-ifeq ($(AGRIF),YES)
-else
-FILENAMES:= $(filter-out $(wildcard src/agrif*),$(FILENAMES))
-OBJS_CREATE_DOMCFG=$(addsuffix .o,$(addprefix $(DIR_OBJS)/,$(FILENAMES)))
-OBJS_CREATE_DOMCFG := $(filter-out $(OBJS_AGRIF),$(OBJS_CREATE_DOMCFG))
-OBJS_AGRIF=
-endif	
-FILENAMES:= $(filter-out $(notdir $(basename $(wildcard src/agrif*))),$(FILENAMES))
-OBJS_CREATE_DOMCFG=$(addsuffix .o,$(addprefix $(DIR_OBJS)/,$(FILENAMES)))
-OBJS_CREATE_DOMCFG := $(filter-out $(OBJS_AGRIF),$(OBJS_CREATE_DOMCFG))
-OBJS_AGRIF=
-
-###########OBJS_CREATE_DOMCFG := $(filter-out $(OBJS_AGRIF),$(OBJS_CREATE_DOMCFG))
-
-
-all: depend conv prepagrif AGRIF_LIB $(OBJS_CREATE_DOMCFG) $(PROGS)
-		@echo
-		@echo ===================================================
-		@echo   Nesting is ok
-		@echo ===================================================
-		@echo
-
-
-ifeq ($(AGRIF),YES)
-make_domain_cfg.exe: $(DIR_LIB)/libdomcfg.a $(DIR_FILES)/nemogcm.F90 $(OBJS_AGRIF) $(OBJS_CREATE_DOMCFG) 
-		$(FC) $(LINKFLAGS) $(FFLAGS) -o $(PROGS) $(OBJS_AGRIF) $(DIR_LIB)/libdomcfg.a $(LIBS) -I$(DIR_OBJS) $(FFLAGS_SPEC) -I../../ext/AGRIF -L../../ext/AGRIF -lagrif
-else
-make_domain_cfg.exe: $(DIR_LIB)/libdomcfg.a $(DIR_FILES)/nemogcm.F90 $(OBJS_CREATE_DOMCFG) 
-		$(FC) $(LINKFLAGS) $(FFLAGS) -o $(PROGS)  $(DIR_LIB)/libdomcfg.a $(LIBS) -I$(DIR_OBJS) $(FFLAGS_SPEC)
-endif	
-
-ifeq ($(AGRIF),YES)
-prepagrif:
-		@echo
-		@echo ===================================================
-		@echo   Create working directories for AGRIF ...
-		@echo ===================================================
-		mkdir -p obj
-		mkdir -p $(DIR_PPSRC_2)
-		mkdir -p $(DIR_LIB)
-		mkdir -p $(DIR_OBJS)
-		mkdir -p $(DIR_PPSRC)
-		mkdir -p $(DIR_PPSRC)/AGRIF_MODELFILES
-		mkdir -p $(DIR_PPSRC)/AGRIF_INC
-		\cp ../../ext/AGRIF/conv $(DIR_PPSRC)
-		\cp ../../ext/AGRIF/agrif_oce.in $(DIR_PPSRC)
-		echo $(OBJS_CREATE_DOMCFG)
-		@echo
-
-conv:
-		$(MAKE) -C ../../ext/AGRIF/LIB
-
-AGRIF_LIB: 
-		$(MAKE) -C ../../ext/AGRIF FC=$(FC) CPP=$(CPP) CPPFLAGS="-DAGRIF_MPI" FFLAGS="$(FFLAGS)"
-else
-
-prepagrif:
-		@echo
-		@echo ===================================================
-		@echo   Create working directories  ...
-		@echo ===================================================
-		mkdir -p obj
-		mkdir -p $(DIR_PPSRC_2)
-		mkdir -p $(DIR_LIB)
-		mkdir -p $(DIR_OBJS)
-		@echo
-conv:
-AGRIF_LIB: 
-
-endif	
-
-$(DIR_LIB)/libdomcfg.a: $(OBJS_CREATE_DOMCFG)
-		@echo
-		@echo ===================================================
-		@echo   Compile domcfg library...
-		@echo ===================================================
-		$(AR) -r $@ $(OBJS_CREATE_DOMCFG)
-		ranlib $@
-		@echo
-
-
-
-ifeq ($(AGRIF),YES)
-
-$(OBJS_AGRIF):src/agrif2model.F90  $(OBJS_CREATE_DOMCFG) MODEL.CPP 
-		$(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS) src/agrif2model.F90 > $(DIR_PPSRC_2)/$(*F).f90	
-		$(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS)  $(FFLAGS_SPEC)
-
-$(DIR_OBJS)/%.o: $(DIR_FILES)/%.F90 make.inc MODEL.CPP 
-		$(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F90 > $(DIR_PPSRC)/$(*F).f90
-		cd NEMOFILES ; ./conv ./agrif_oce.in -rm \
-		-comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile $(*F).f90
-		$(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS)  $(DIR_PPSRC)/AGRIF_MODELFILES/$(*F).f90 >$(DIR_PPSRC_2)/$(*F).f90	
-		$(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS)  $(FFLAGS_SPEC) 
-
-
-$(DIR_OBJS)/%.o: $(DIR_FILES)/%.f90 make.inc MODEL.CPP 
-		$(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).f90 > $(DIR_PPSRC)/$(*F).f90
-		cd NEMOFILES ; ./conv agrif_oce.in -rm \
-		-comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile $(*F).f90
-		$(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS)  $(DIR_PPSRC)/AGRIF_MODELFILES/$(*F).f90 >$(DIR_PPSRC_2)/$(*F).f90	
-		$(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS)  $(FFLAGS_SPEC) 
-
-else
-
-$(DIR_OBJS)/%.o: $(DIR_FILES)/%.F90 make.inc MODEL.CPP
-		$(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F90 > $(DIR_PPSRC_2)/$(*F).f90
-		$(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I$(DIR_OBJS)  $(FFLAGS_SPEC) 
-
-$(DIR_OBJS)/%.o: $(DIR_FILES)/%.f90 make.inc MODEL.CPP
-		$(FC) $(FFLAGS) -c $(DIR_FILES)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I$(DIR_OBJS)  $(FFLAGS_SPEC) 
-
-
-$(DIR_OBJS)/%.o: $(DIR_FILES)/%.c make.inc MODEL.CPP
-	$(CC) -c $(CFLAGS) -c $(DIR_FILES)/$(*F).c -o $(DIR_OBJS)/$(*F).o -I$(DIR_OBJS)  $(FFLAGS_SPEC) 
-
-endif
-#--------------------------------------------------------------------------
-#  Target to create dependeanies.
-#--------------------------------------------------------------------------
-
-MakeDepend: $(DIR_FILES)
-		$(SFMAKEDEPEND) --silent --fext=f90 --fext=f --fext=F90 --fext=F --fext=c --file=- --moddir=$(DIR_OBJS) --objdir=$(DIR_OBJS)  $(FILES) > MakeDepend
-
-depend: $(DIR_FILES)
-		@echo
-		@echo ===================================================
-		@echo   Create dependancies for Nesting ...
-		@echo ===================================================
-		@echo 
-		@echo
-		$(SFMAKEDEPEND) --fext=f90 --fext=f  --silent --fext=F90 --fext=F --fext=c --file=- --moddir=$(DIR_OBJS) --objdir=$(DIR_OBJS)  $(FILES) > MakeDepend
-
-#ifneq "$(MAKECMDGOALS)" "clean"
--include ./MakeDepend
-#endif
-
-#--------------------------------------------------------------------------
-#  Target to clean
-#--------------------------------------------------------------------------
-
-clean:
-		@echo
-		@echo ===================================================
-		@echo   Clean ...
-		@echo ===================================================
-		$(RM) -rf $(DIR_PPSRC) $(DIR_PPSRC_2) $(DIR_LIB) $(DIR_OBJS) $(PROGS) 
-	
-# DO NOT DELETE THIS LINE - used by make depend	
Index: MO/branches/2019/ENHANCE-03_domcfg/README
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/README	(revision 11627)
+++ 	(revision )
@@ -1,75 +1,0 @@
-================================
-= HOW TO COMPILE
-================================
-The DOMAINcfg tool can be compiled using the maketools script in the NEMOGCM/TOOLS directory as follows:
-:::::::::::::::::::::::::::::::::
-./maketools -m $ARCH -n DOMAINcfg
-:::::::::::::::::::::::::::::::::
-where $ARCH indicates the arch file to be used from the directory NEMOGCM/ARCH. 
-
-DOMAINcfg compiled will create "make_domain_cfg.exe" executable script (the main routine of this tool is make_domain_cfg.f90)
-
-================================
-= HOW TO RUN
-================================
-just run :
-:::::::::::::::::::::::::::::::::::::::::::::::::
-mpirun -np 1 ./make_domain_cfg.exe
-:::::::::::::::::::::::::::::::::::::::::::::::::
-NOTA: it can be run in multiproc mode, but in output there will be domain_cfg_00xx.nc files
-
- === Closed seas (closea module) ===
-
-If you want to define closed seas in the bathymetry either to suppress them at runtime or 
-redistribute freshwater fluxes, then you need to run make_closea_masks.py after you have
-created the basic domain_cfg file. This utility will add "closea_mask*" fields to the
-domain_cfg file to define the closed seas in the configuration. (If you have closed seas
-but don't want to treat them in a special way then you can ignore this step). 
-
-================================
-= HOW TO USE
-================================
-1) copy in DOMAINcfg  directory namelist_cfg all settings (that you had in 3.6_stable) of the configuration for which you want prepare domain_cfg.nc file
-IMPORTANT : keep the namelist_ref committed inchanged. !!!
-
-NEW OPTION ln_e3_dep in the namelist_ref:
-till nemo_v3.6_stable e3 were done like an analytical derivative of depth function
-now  e3=dk[depth] in discret sens
-
-If you want to create same e3[tuvw] like 3.6 you've to use "ln_e3_dep=.false."
-
- ln_e3_dep   = .true.    ! =T : e3=dk[depth] in discret sens.
-   !                       !      ===>>> will become the only possibility in v4.0
-   !                       ! =F : e3 analytical derivative of depth function
-   !                       !      only there for backward compatibility test with v3.6
-   !
-
-2) copy in DOMAINcfg directory same input files (of related configuration) required in v3.6_stable.
-
-DOMAINcfg package is EXACTLY what does exist in NEMO version 3.6 to define a model domain (both domain related namelist and initialization).
-DOMAINcfg tool creates a netcdf file "domain_cfg.nc" containing all the ocean domain informations required to define an ocean configuration,
-these files are :
-          
-    domain size
-    domain characteristics (periodic)
-    horizontal mesh
-    Coriolis parameter
-    depth and vertical scale factors
-
-FOR EXAMPLE 
-- for AMM12 : 
-            coordinates.nc
-            bathy_meter.nc
-            bathy_level.nc
-            amm12_rivers.nc
-            coordinates.bdy.nc
-            amm12_restart_oce.nc
-         directories:   bdydta/
-                        fluxes/
-- for ORCA2 : 
-            coordinates.nc
-            bathy_meter.nc
-            bathy_level.nc
-            domain_def.xml
-            field_def.xml
-            iodef.xml
Index: /NEMO/branches/2019/ENHANCE-03_domcfg/README.rst
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/README.rst	(revision 11628)
+++ /NEMO/branches/2019/ENHANCE-03_domcfg/README.rst	(revision 11628)
@@ -0,0 +1,76 @@
+================================
+= HOW TO COMPILE
+================================
+The DOMAINcfg tool can be compiled using the maketools script in the NEMOGCM/TOOLS directory as follows:
+:::::::::::::::::::::::::::::::::
+./maketools -m $ARCH -n DOMAINcfg
+:::::::::::::::::::::::::::::::::
+where $ARCH indicates the arch file to be used from the directory NEMOGCM/ARCH. 
+
+DOMAINcfg compiled will create "make_domain_cfg.exe" executable script (the main routine of this tool is make_domain_cfg.f90)
+
+================================
+= HOW TO RUN
+================================
+just run :
+:::::::::::::::::::::::::::::::::::::::::::::::::
+mpirun -np 1 ./make_domain_cfg.exe
+:::::::::::::::::::::::::::::::::::::::::::::::::
+NOTA: it can be run in multiproc mode, but in output there will be domain_cfg_00xx.nc files
+
+================================
+= HOW TO USE
+================================
+1) copy in DOMAINcfg  directory namelist_cfg all settings (that you had in 3.6_stable) of the configuration for which you want prepare domain_cfg.nc file
+IMPORTANT : keep the namelist_ref committed inchanged. !!!
+
+NEW OPTION:
+* ln_e3_dep
+till nemo_v3.6_stable e3 were done like an analytical derivative of depth function
+now  e3=dk[depth] in discret sens
+
+If you want to create same e3[tuvw] like 3.6 you've to use "ln_e3_dep=.false."
+
+ ln_e3_dep   = .true.    ! =T : e3=dk[depth] in discret sens.
+   !                       !      ===>>> will become the only possibility in v4.0
+   !                       ! =F : e3 analytical derivative of depth function
+   !                       !      only there for backward compatibility test with v3.6
+   !
+
+* ln_domclo
+The definition of closed sea are now integrated into ./make_domain_cfg.exe. The need on an external python script and hard coded indices has been removed.
+ln_domclo=T will generate the masks needed to mask or correct 
+the fwf unbalance over closed sea. If non defined closed sea are detected, a mask containing this will also be generated.
+The detection of the lake is done using a lat/lon seed and a flood filling algorithm (the default namelist should work for any resolution).
+The definition of the target area is done by defining a lat/lon position center, then all wet points at a defined distance of it will be selected.
+Options are available to select only coastal points if needed.
+
+2) copy in DOMAINcfg directory same input files (of related configuration) required in v3.6_stable.
+
+DOMAINcfg package is EXACTLY what does exist in NEMO version 3.6 to define a model domain (both domain related namelist and initialization).
+DOMAINcfg tool creates a netcdf file "domain_cfg.nc" containing all the ocean domain informations required to define an ocean configuration,
+these files are :
+          
+    domain size
+    domain characteristics (periodic)
+    horizontal mesh
+    Coriolis parameter
+    depth and vertical scale factors
+
+FOR EXAMPLE 
+- for AMM12 : 
+            coordinates.nc
+            bathy_meter.nc
+            bathy_level.nc
+            amm12_rivers.nc
+            coordinates.bdy.nc
+            amm12_restart_oce.nc
+         directories:   bdydta/
+                        fluxes/
+- for ORCA2 : 
+            coordinates.nc
+            bathy_meter.nc
+            bathy_level.nc
+            domain_def.xml
+            field_def.xml
+            iodef.xml
Index: /NEMO/branches/2019/ENHANCE-03_domcfg/cpp_ENHANCE-03_domcfg.fcm
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/cpp_ENHANCE-03_domcfg.fcm	(revision 11628)
+++ /NEMO/branches/2019/ENHANCE-03_domcfg/cpp_ENHANCE-03_domcfg.fcm	(revision 11628)
@@ -0,0 +1,1 @@
+ bld::tool::fppkeys key_mpp_mpi
Index: MO/branches/2019/ENHANCE-03_domcfg/make.inc
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/make.inc	(revision 11627)
+++ 	(revision )
@@ -1,24 +1,0 @@
-FC=ftn
-FFLAGS= -em -s real64 -s integer32 -O2 -hflex_mp=intolerant -e0 -ez -Rb
-FFLAGS_SPEC= -J$(DIR_OBJS) 
-#-fbounds-check  -fbacktrace -g -fcheck=all -Wall
-CPP=cpp
-CPPFLAGS=-P -E -traditional-cpp
-CPPARCH = 
-CPPFLAGS += $(CPPARCH) 
-
-CC=cc
-CFLAGS = -O0
-
-NCDF_ROOT=/home/d01/pmathiot/XIOS_2.0_r1296_from_xcs/1296
-INC_NETCDF = -I$(NCDF_ROOT)/include
-LIB_NETCDF= -L$(NCDF_ROOT)/lib/ -lnetcdf -lnetcdff
-
-INCS = $(INC_NETCDF) 
-LIBS =$(LIB_NETCDF)  
-
-# language-specific flags
-#
-F77FLG =  -ffixed-form # -Mfixed
-F90FLG =  -ffree-form -ffree-line-length-0 # -Mfree
-
Index: MO/branches/2019/ENHANCE-03_domcfg/make_closea_masks.py
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/make_closea_masks.py	(revision 11627)
+++ 	(revision )
@@ -1,433 +1,0 @@
-#!/usr/local/sci/bin/python2.7
-
-'''
-Routine to create closea mask fields based on old NEMO closea index definitions.
-Details of the grid and the bathymetry are read in from the domain_cfg.nc file and
-the closea_mask* fields are appended to the same domain_cfg.nc file. 
-
-To use this routine:
-
-  1. Provide domain_cfg.nc file for your configuration.
-
-  2. Define closed seas for your configuration in Section 2 
-     using indices in the old NEMO style. (Read the comments on 
-     indexing in Section 2!). Examples are given for eORCA025 
-     (UK version) for the three different options:
-        - just defining closed seas (and distribute fluxes over global ocean)
-        - defining closed seas with a RNF mapping for the American Great Lakes to the St Laurence Seaway
-        - defining closed seas with an EMPMR mapping for the American Great Lakes to the St Laurence Seaway
-
-  3. Choose whether to mask the closea_mask* fields. Not required
-     but makes the fields easier to check.
-
-  4. Module can be run in python or from linux command line if you
-     change the top line to point to your python installation. If 
-     using from command line, type "make_closea_masks.py --help"
-     for usage.
-
-@author: Dave Storkey
-@date: Dec 2017
-'''
-import netCDF4 as nc
-import numpy as np
-import numpy.ma as ma
-
-def make_closea_masks(config=None,domcfg_file=None,mask=None):
-
-#=========================
-# 1. Read in domcfg file
-#=========================
-
-    if config is None:
-        raise Exception('configuration must be specified')
-
-    if domcfg_file is None:
-        raise Exception('domain_cfg file must be specified')
-
-    if mask is None:
-        mask=False
-
-    domcfg = nc.Dataset(domcfg_file,'r+')
-    lon = domcfg.variables['nav_lon'][:]
-    lat = domcfg.variables['nav_lat'][:]
-    top_level = domcfg.variables['top_level'][0][:]
-
-    nx = top_level.shape[1]
-    ny = top_level.shape[0]
-
-    # Generate 2D "i" and "j" fields for use in "where" statements.
-    # These are the Fortran indices, counting from 1, so we have to
-    # add 1 to np.arange because python counts from 0.
-
-    ones_2d = np.ones((ny,nx))
-    ii1d = np.arange(nx)+1
-    jj1d = np.arange(ny)+1
-    ii2d = ii1d * ones_2d
-    jj2d = np.transpose(jj1d*np.transpose(ones_2d)) 
- 
-#=====================================
-# 2. Closea definitions (old style)
-#=====================================
-
-    # NB. The model i and j indices defined here are Fortran indices, 
-    #     ie. counting from 1 as in the NEMO code. Also the indices
-    #     of the arrays (ncsi1 etc) count from 1 in order to match
-    #     the Fortran code.
-    #     This means that you can cut and paste the definitions from
-    #     the NEMO code and change round brackets to square brackets. 
-    #     But BEWARE: Fortran array(a:b) == Python array[a:b+1] !!!
-    #
-
-    # If use_runoff_box = True then specify runoff area as all sea points within
-    # a rectangular area. If use_runoff_box = False then specify a list of points
-    # as in the old NEMO code. Default to false.
-    use_runoff_box = False
-
-    #================================================================
-    if config == 'ORCA2':
-
-        num_closea = 4
-        max_runoff_points = 4
-
-        ncsnr = np.zeros(num_closea+1,dtype=np.int)                     ; ncstt = np.zeros(num_closea+1,dtype=np.int)
-        ncsi1 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsi2 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int) ; ncsjr = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int)
-
-        # Caspian Sea (spread over globe)
-        ncsnr[1]   =   1  ;  ncstt[1]   =   0   
-        ncsi1[1]   =  11  ;  ncsj1[1]   = 103
-        ncsi2[1]   =  17  ;  ncsj2[1]   = 112
-
-        # Great Lakes - North America - put at St Laurent mouth
-        ncsnr[2]   =   1  ;  ncstt[2]   =   2 
-        ncsi1[2]   =  97  ;  ncsj1[2]   = 107
-        ncsi2[2]   = 103  ;  ncsj2[2]   = 111
-        ncsir[2,1] = 110  ;  ncsjr[2,1] = 111           
-
-        # Black Sea (crossed by the cyclic boundary condition)
-        # put in Med Sea (north of Aegean Sea)
-        ncsnr[3:5] =   4  ;  ncstt[3:5] =   2           
-        ncsir[3:5,1] = 171;  ncsjr[3:5,1] = 106     
-        ncsir[3:5,2] = 170;  ncsjr[3:5,2] = 106 
-        ncsir[3:5,3] = 171;  ncsjr[3:5,3] = 105 
-        ncsir[3:5,4] = 170;  ncsjr[3:5,4] = 105 
-        # west part of the Black Sea      
-        ncsi1[3]   = 174  ;  ncsj1[3]   = 107      
-        ncsi2[3]   = 181  ;  ncsj2[3]   = 112      
-        # east part of the Black Sea      
-        ncsi1[4]   =   2  ;  ncsj1[4]   = 107      
-        ncsi2[4]   =   6  ;  ncsj2[4]   = 112      
-
-    #================================================================
-    elif config == 'eORCA1':
-
-        num_closea = 1
-        max_runoff_points = 1
-
-        ncsnr = np.zeros(num_closea+1,dtype=np.int)                     ; ncstt = np.zeros(num_closea+1,dtype=np.int)
-        ncsi1 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsi2 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int) ; ncsjr = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int)
-
-        # Caspian Sea  (spread over the globe)
-        ncsnr[1]   = 1    ; ncstt[1]   = 0           
-        ncsi1[1]   = 332  ; ncsj1[1]   = 243
-        ncsi2[1]   = 344  ; ncsj2[1]   = 275
-
-    #================================================================
-    elif config == 'eORCA025_UK':
-
-        num_closea = 10
-        max_runoff_points = 1
-
-        ncsnr = np.zeros(num_closea+1,dtype=np.int)                     ; ncstt = np.zeros(num_closea+1,dtype=np.int)
-        ncsi1 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsi2 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int) ; ncsjr = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int)
-
-        # Caspian Sea
-        ncsnr[1]   = 1    ; ncstt[1]   = 0     
-        ncsi1[1]   = 1330 ; ncsj1[1]   = 831
-        ncsi2[1]   = 1375 ; ncsj2[1]   = 981
-
-        # Aral Sea
-        ncsnr[2]   = 1    ; ncstt[2]   = 0     
-        ncsi1[2]   = 1376 ; ncsj1[2]   = 900
-        ncsi2[2]   = 1400 ; ncsj2[2]   = 981
-
-        # Azov Sea
-        ncsnr[3]   = 1    ; ncstt[3]   = 0     
-        ncsi1[3]   = 1284 ; ncsj1[3]   = 908
-        ncsi2[3]   = 1304 ; ncsj2[3]   = 933
-
-        # Lake Superior
-        ncsnr[4]   = 1    ; ncstt[4]   = 0     
-        ncsi1[4]   = 781  ; ncsj1[4]   = 905 
-        ncsi2[4]   = 815  ; ncsj2[4]   = 926 
-
-        # Lake Michigan
-        ncsnr[5]   = 1    ; ncstt[5]   = 0     
-        ncsi1[5]   = 795  ; ncsj1[5]   = 871             
-        ncsi2[5]   = 813  ; ncsj2[5]   = 905 
-
-        # Lake Huron part 1
-        ncsnr[6]   = 1    ; ncstt[6]   = 0     
-        ncsi1[6]   = 814  ; ncsj1[6]   = 882             
-        ncsi2[6]   = 825  ; ncsj2[6]   = 905 
-
-        # Lake Huron part 2
-        ncsnr[7]   = 1    ; ncstt[7]   = 0     
-        ncsi1[7]   = 826  ; ncsj1[7]   = 889             
-        ncsi2[7]   = 833  ; ncsj2[7]   = 905 
-
-        # Lake Erie
-        ncsnr[8]   = 1    ; ncstt[8]   = 0     
-        ncsi1[8]   = 816  ; ncsj1[8]   = 871             
-        ncsi2[8]   = 837  ; ncsj2[8]   = 881 
-
-        # Lake Ontario
-        ncsnr[9]   = 1    ; ncstt[9]   = 0     
-        ncsi1[9]   = 831  ; ncsj1[9]   = 882             
-        ncsi2[9]   = 847  ; ncsj2[9]   = 889 
-
-        # Lake Victoria
-        ncsnr[10]   = 1    ; ncstt[10]   = 0   
-        ncsi1[10]   = 1274 ; ncsj1[10]   = 672 
-        ncsi2[10]   = 1289 ; ncsj2[10]   = 687 
-
-    #================================================================
-    elif config == 'eORCA025_UK_rnf':
-
-        num_closea = 10
-        max_runoff_points = 1
-        use_runoff_box = True
-
-        ncsnr = np.zeros(num_closea+1,dtype=np.int)                     ; ncstt = np.zeros(num_closea+1,dtype=np.int)
-        ncsi1 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsi2 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir1 = np.zeros(num_closea+1,dtype=np.int)                    ; ncsjr1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir2 = np.zeros(num_closea+1,dtype=np.int)                    ; ncsjr2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int) ; ncsjr = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int)
-
-        # Caspian Sea
-        ncsnr[1]   = 1    ; ncstt[1]   = 0     
-        ncsi1[1]   = 1330 ; ncsj1[1]   = 831
-        ncsi2[1]   = 1375 ; ncsj2[1]   = 981
-
-        # Aral Sea
-        ncsnr[2]   = 1    ; ncstt[2]   = 0     
-        ncsi1[2]   = 1376 ; ncsj1[2]   = 900
-        ncsi2[2]   = 1400 ; ncsj2[2]   = 981
-
-        # Azov Sea
-        ncsnr[3]   = 1    ; ncstt[3]   = 0     
-        ncsi1[3]   = 1284 ; ncsj1[3]   = 908
-        ncsi2[3]   = 1304 ; ncsj2[3]   = 933
-
-        # Lake Superior
-        ncsnr[4]   = 1    ; ncstt[4]   = 1     
-        ncsi1[4]   = 781  ; ncsj1[4]   = 905 
-        ncsi2[4]   = 815  ; ncsj2[4]   = 926 
-        # runff points the St Laurence Seaway for all Great Lakes
-        ncsir1[4:10]   = 873 ; ncsjr1[4:10]   = 909 
-        ncsir2[4:10]   = 884 ; ncsjr2[4:10]   = 920 
-
-        # Lake Michigan
-        ncsnr[5]   = 1    ; ncstt[5]   = 1     
-        ncsi1[5]   = 795  ; ncsj1[5]   = 871             
-        ncsi2[5]   = 813  ; ncsj2[5]   = 905 
-
-        # Lake Huron part 1
-        ncsnr[6]   = 1    ; ncstt[6]   = 1     
-        ncsi1[6]   = 814  ; ncsj1[6]   = 882             
-        ncsi2[6]   = 825  ; ncsj2[6]   = 905 
-
-        # Lake Huron part 2
-        ncsnr[7]   = 1    ; ncstt[7]   = 1     
-        ncsi1[7]   = 826  ; ncsj1[7]   = 889             
-        ncsi2[7]   = 833  ; ncsj2[7]   = 905 
-
-        # Lake Erie
-        ncsnr[8]   = 1    ; ncstt[8]   = 1     
-        ncsi1[8]   = 816  ; ncsj1[8]   = 871             
-        ncsi2[8]   = 837  ; ncsj2[8]   = 881 
-
-        # Lake Ontario
-        ncsnr[9]   = 1    ; ncstt[9]   = 1     
-        ncsi1[9]   = 831  ; ncsj1[9]   = 882             
-        ncsi2[9]   = 847  ; ncsj2[9]   = 889 
-
-        # Lake Victoria
-        ncsnr[10]   = 1    ; ncstt[10]   = 0   
-        ncsi1[10]   = 1274 ; ncsj1[10]   = 672 
-        ncsi2[10]   = 1289 ; ncsj2[10]   = 687 
-
-    #================================================================
-    elif config == 'eORCA025_UK_empmr':
-
-        num_closea = 10
-        max_runoff_points = 1
-        use_runoff_box = True
-
-        ncsnr = np.zeros(num_closea+1,dtype=np.int)                     ; ncstt = np.zeros(num_closea+1,dtype=np.int)
-        ncsi1 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsi2 = np.zeros(num_closea+1,dtype=np.int)                     ; ncsj2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir1 = np.zeros(num_closea+1,dtype=np.int)                    ; ncsjr1 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir2 = np.zeros(num_closea+1,dtype=np.int)                    ; ncsjr2 = np.zeros(num_closea+1,dtype=np.int)
-        ncsir = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int) ; ncsjr = np.zeros((num_closea+1,max_runoff_points+1),dtype=np.int)
-
-        # Caspian Sea
-        ncsnr[1]   = 1    ; ncstt[1]   = 0     
-        ncsi1[1]   = 1330 ; ncsj1[1]   = 831
-        ncsi2[1]   = 1375 ; ncsj2[1]   = 981
-
-        # Aral Sea
-        ncsnr[2]   = 1    ; ncstt[2]   = 0     
-        ncsi1[2]   = 1376 ; ncsj1[2]   = 900
-        ncsi2[2]   = 1400 ; ncsj2[2]   = 981
-
-        # Azov Sea
-        ncsnr[3]   = 1    ; ncstt[3]   = 0     
-        ncsi1[3]   = 1284 ; ncsj1[3]   = 908
-        ncsi2[3]   = 1304 ; ncsj2[3]   = 933
-
-        # Lake Superior
-        ncsnr[4]   = 1    ; ncstt[4]   = 2     
-        ncsi1[4]   = 781  ; ncsj1[4]   = 905
-        ncsi2[4]   = 815  ; ncsj2[4]   = 926 
-        # runff points the St Laurence Seaway for all Great Lakes
-        ncsir1[4:10]   = 873 ; ncsjr1[4:10]   = 909 
-        ncsir2[4:10]   = 884 ; ncsjr2[4:10]   = 920 
-
-        # Lake Michigan
-        ncsnr[5]   = 1    ; ncstt[5]   = 2     
-        ncsi1[5]   = 795  ; ncsj1[5]   = 871             
-        ncsi2[5]   = 813  ; ncsj2[5]   = 905 
-
-        # Lake Huron part 1
-        ncsnr[6]   = 1    ; ncstt[6]   = 2     
-        ncsi1[6]   = 814  ; ncsj1[6]   = 882             
-        ncsi2[6]   = 825  ; ncsj2[6]   = 905 
-
-        # Lake Huron part 2
-        ncsnr[7]   = 1    ; ncstt[7]   = 2     
-        ncsi1[7]   = 826  ; ncsj1[7]   = 889             
-        ncsi2[7]   = 833  ; ncsj2[7]   = 905 
-
-        # Lake Erie
-        ncsnr[8]   = 1    ; ncstt[8]   = 2     
-        ncsi1[8]   = 816  ; ncsj1[8]   = 871             
-        ncsi2[8]   = 837  ; ncsj2[8]   = 881 
-
-        # Lake Ontario
-        ncsnr[9]   = 1    ; ncstt[9]   = 2     
-        ncsi1[9]   = 831  ; ncsj1[9]   = 882             
-        ncsi2[9]   = 847  ; ncsj2[9]   = 889 
-
-        # Lake Victoria
-        ncsnr[10]   = 1    ; ncstt[10]   = 0   
-        ncsi1[10]   = 1274 ; ncsj1[10]   = 672 
-        ncsi2[10]   = 1289 ; ncsj2[10]   = 687 
-
-#=====================================
-# 3. Generate mask fields
-#=====================================
-
-    rnf_count = 0
-    empmr_count = 0
-
-    closea_mask = ma.zeros(top_level.shape,dtype=np.int)
-    temp_mask_rnf = ma.zeros(top_level.shape,dtype=np.int)
-    temp_mask_empmr = ma.zeros(top_level.shape,dtype=np.int)
-    closea_mask_rnf = ma.zeros(top_level.shape,dtype=np.int)
-    closea_mask_empmr = ma.zeros(top_level.shape,dtype=np.int)
-
-    for ics in range(num_closea):
-        closea_mask = ma.where( ( ii2d[:] >= ncsi1[ics+1] ) & ( ii2d[:] <= ncsi2[ics+1] ) &
-                                ( jj2d[:] >= ncsj1[ics+1] ) & ( jj2d[:] <= ncsj2[ics+1] ) &
-                                ( top_level == 1 ), ics+1, closea_mask)
-        if ncstt[ics+1] == 1:
-            rnf_count = rnf_count + 1
-            temp_mask_rnf[:] = 0
-            if use_runoff_box:
-                temp_mask_rnf = ma.where( ( ii2d[:] >= ncsir1[ics+1] ) & ( ii2d[:] <= ncsir2[ics+1] ) &
-                                       ( jj2d[:] >= ncsjr1[ics+1] ) & ( jj2d[:] <= ncsjr2[ics+1] ) &
-                                       ( top_level == 1 ), rnf_count, 0)
-            else:
-                for ir in range(ncsnr[ics+1]):
-                    temp_mask_rnf[ncsjr[ics+1],ncsjr[ics+1]] = rnf_count
- 
-            temp_mask_rnf = ma.where( closea_mask_rnf > 0, ma.minimum(temp_mask_rnf,closea_mask_rnf), temp_mask_rnf)
-            min_rnf = ma.amin(temp_mask_rnf[ma.where(temp_mask_rnf > 0)])
-            max_rnf = ma.amax(temp_mask_rnf[ma.where(temp_mask_rnf > 0)])
-            if min_rnf != max_rnf:
-                print 'min_rnf, max_rnf : ',min_rnf,max_rnf
-                raise Exception('Partially overlapping target rnf areas for two closed seas.')
-            else:
-                # source area:
-                closea_mask_rnf[ma.where(closea_mask==ics+1)] = min_rnf
-                # target area:
-                closea_mask_rnf[ma.where(temp_mask_rnf>0)] = min_rnf
-                # reset rnf_count:
-                rnf_count = min_rnf
-                    
-        if ncstt[ics+1] == 2:
-            empmr_count = empmr_count + 1
-            temp_mask_empmr[:] = 0
-            if use_runoff_box:
-                temp_mask_empmr = ma.where( ( ii2d[:] >= ncsir1[ics+1] ) & ( ii2d[:] <= ncsir2[ics+1] ) &
-                                          ( jj2d[:] >= ncsjr1[ics+1] ) & ( jj2d[:] <= ncsjr2[ics+1] ) &
-                                          ( top_level == 1 ), empmr_count, 0)
-            else:
-                for ir in range(ncsnr[ics+1]):
-                    temp_mask_empmr[ncsjr[ics+1],ncsjr[ics+1]] = empmr_count
-
-            temp_mask_empmr = ma.where( closea_mask_empmr > 0, ma.minimum(temp_mask_empmr,closea_mask_empmr), temp_mask_empmr)
-            min_empmr = ma.amin(temp_mask_empmr[ma.where(temp_mask_empmr > 0)])
-            max_empmr = ma.amax(temp_mask_empmr[ma.where(temp_mask_empmr > 0)])
-            if min_empmr != max_empmr:
-                raise Exception('Partially overlapping target empmr areas for two closed seas.')
-            else:
-                # source area:
-                closea_mask_empmr[ma.where(closea_mask==ics+1)] = min_empmr
-                # target area:
-                closea_mask_empmr[ma.where(temp_mask_empmr>0)] = min_empmr
-                # reset empmr_count:
-                empmr_count = min_empmr
-                    
-    if mask:
-        # apply land-sea mask if required
-        closea_mask.mask = np.where(top_level==0,True,False)
-        closea_mask_rnf.mask = np.where(top_level==0,True,False)
-        closea_mask_empmr.mask = np.where(top_level==0,True,False)
-
-#=====================================
-# 4. Append masks to domain_cfg file.
-#=====================================
-
-    domcfg.createVariable('closea_mask',datatype='i',dimensions=('y','x'),fill_value=closea_mask.fill_value,chunksizes=(1000,1000))
-    domcfg.variables['closea_mask'][:]=closea_mask
-    if rnf_count > 0:
-        domcfg.createVariable('closea_mask_rnf',datatype='i',dimensions=('y','x'),fill_value=closea_mask_rnf.fill_value,chunksizes=(1000,1000))
-        domcfg.variables['closea_mask_rnf'][:]=closea_mask_rnf
-    if empmr_count > 0:
-        domcfg.createVariable('closea_mask_empmr',datatype='i',dimensions=('y','x'),fill_value=closea_mask_empmr.fill_value,chunksizes=(1000,1000))
-        domcfg.variables['closea_mask_empmr'][:]=closea_mask_empmr
-
-    domcfg.close()
-
-
-if __name__=="__main__":
-    import argparse
-    parser = argparse.ArgumentParser()
-    parser.add_argument("-c", "--config", action="store",dest="config",default=None,
-                    help="configuration: eORCA1, eORCA025_UK")
-    parser.add_argument("-d", "--domcfg", action="store",dest="domcfg_file",default=None,
-                    help="domcfg file (input)")
-    parser.add_argument("-m", "--mask", action="store_true",dest="mask",default=False,
-                    help="mask output file based on top_level in domcfg file")
-
-    args = parser.parse_args()
-
-    make_closea_masks(config=args.config,domcfg_file=args.domcfg_file,mask=args.mask)
Index: /NEMO/branches/2019/ENHANCE-03_domcfg/namelist_cfg
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/namelist_cfg	(revision 11627)
+++ /NEMO/branches/2019/ENHANCE-03_domcfg/namelist_cfg	(revision 11628)
@@ -1,79 +1,61 @@
 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-!! NEMO/OPA  Configuration namelist : used to overwrite defaults values defined in SHARED/namelist_ref
+!! NEMO/OCE :   Reference namelist_ref                                !!
 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-!
+!! NEMO/OCE  :  1 - Domain & run manager (namrun, namcfg, namdom, namzgr, namzgr_sco )
+!!              2 - diagnostics      (namnc4)
+!!              3 - miscellaneous    (nammpp, namctl)
+!!
+!! namelist skeleton : egrep -E '(^/ *$|^! *$|^ *$|&nam.*|!---.*|!! .*|!!==.*|!!>>>.*)' namelist_ref > namelist_skl
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !-----------------------------------------------------------------------
 &namrun        !   parameters of the run
 !-----------------------------------------------------------------------
-   nn_no       =       0   !  job number (no more used...)
-   cn_exp      =  "domaincfg"  !  experience name
-   nn_it000    =       1   !  first time step
-   nn_itend    =      75   !  last  time step (std 5475)
+/
+!-----------------------------------------------------------------------
+&namdom        !   space and time domain (bathymetry, mesh, timestep)
+!-----------------------------------------------------------------------
 /
 !-----------------------------------------------------------------------
 &namcfg        !   parameters of the configuration
 !-----------------------------------------------------------------------
-   !
-   ln_e3_dep   = .true.    ! =T : e3=dk[depth] in discret sens. 
-   !                       !      ===>>> will become the only possibility in v4.0
-   !                       ! =F : e3 analytical derivative of depth function
-   !                       !      only there for backward compatibility test with v3.6
-   !                       !      
-   cp_cfg      =  "orca"   !  name of the configuration
-   jp_cfg      =       2   !  resolution of the configuration
-   jpidta      =     182   !  1st lateral dimension ( >= jpi )
-   jpjdta      =     149   !  2nd    "         "    ( >= jpj )
-   jpkdta      =      31   !  number of levels      ( >= jpk )
-   jpiglo      =     182   !  1st dimension of global domain --> i =jpidta
-   jpjglo      =     149   !  2nd    -                  -    --> j  =jpjdta
-   jpizoom     =       1   !  left bottom (i,j) indices of the zoom
-   jpjzoom     =       1   !  in data domain indices
-   jperio      =       4   !  lateral cond. type (between 0 and 6)
 /
 !-----------------------------------------------------------------------
-&namzgr        !   vertical coordinate
-!-----------------------------------------------------------------------
-   ln_zps      = .true.    !  z-coordinate - partial steps
-   ln_linssh   = .true.    !  linear free surface
-/
-&namzgr_sco
-/
-&namlbc
-/
-&namagrif
-/
-&nambdy
-/
-&nam_vvl
-/
-
-!-----------------------------------------------------------------------
-&namdom        !   space and time domain (bathymetry, mesh, timestep)
-!-----------------------------------------------------------------------
-   jphgr_msh   =       0               !  type of horizontal mesh
-   ppglam0     =  999999.0             !  longitude of first raw and column T-point (jphgr_msh = 1)
-   ppgphi0     =  999999.0             ! latitude  of first raw and column T-point (jphgr_msh = 1)
-   ppe1_deg    =  999999.0             !  zonal      grid-spacing (degrees)
-   ppe2_deg    =  999999.0             !  meridional grid-spacing (degrees)
-   ppe1_m      =  999999.0             !  zonal      grid-spacing (degrees)
-   ppe2_m      =  999999.0             !  meridional grid-spacing (degrees)
-   ppsur       =   -4762.96143546300   !  ORCA r4, r2 and r05 coefficients
-   ppa0        =     255.58049070440   ! (default coefficients)
-   ppa1        =     245.58132232490   !
-   ppkth       =      21.43336197938   !
-   ppacr       =       3.0             !
-   ppdzmin     =  999999.              !  Minimum vertical spacing
-   pphmax      =  999999.              !  Maximum depth
-   ldbletanh   =  .FALSE.              !  Use/do not use double tanf function for vertical coordinates
-   ppa2        =  999999.              !  Double tanh function parameters
-   ppkth2      =  999999.              !
-   ppacr2      =  999999.              !
-/
-!-----------------------------------------------------------------------
-&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi)
+&namzgr        !   vertical coordinate                                  (default: NO selection)
 !-----------------------------------------------------------------------
 /
 !-----------------------------------------------------------------------
-&namctl        !   Control prints & Benchmark
+&namzgr_sco    !   s-coordinate or hybrid z-s-coordinate                (default F)
+!-----------------------------------------------------------------------
+                        !!!!!!!  Envelop bathymetry
+                        !!!!!!!  SH94 stretching coefficients  (ln_s_sh94 = .true.)
+                        !!!!!!!  SF12 stretching coefficient  (ln_s_sf12 = .true.)
+                        !!!!!!!! Other stretching (not SH94 or SF12) [also uses rn_theta above]
+/
+!-----------------------------------------------------------------------
+&namclo ! (closed sea : need ln_domclo = .true. in namcfg)
 !-----------------------------------------------------------------------
 /
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition                  (default: NO selection)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nambdy        !  unstructured open boundaries                          (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namnc4        !   netcdf4 chunking and compression settings            ("key_netcdf4")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints                                       (default: OFF)
+!-----------------------------------------------------------------------
+/
Index: /NEMO/branches/2019/ENHANCE-03_domcfg/namelist_ref
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/namelist_ref	(revision 11627)
+++ /NEMO/branches/2019/ENHANCE-03_domcfg/namelist_ref	(revision 11628)
@@ -3,6 +3,6 @@
 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !! NEMO/OCE  :  1 - Domain & run manager (namrun, namcfg, namdom, namzgr, namzgr_sco )
-!!              8 - diagnostics      (namnc4)
-!!             10 - miscellaneous    (nammpp, namctl)
+!!              2 - diagnostics      (namnc4)
+!!              3 - miscellaneous    (nammpp, namctl)
 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !-----------------------------------------------------------------------
@@ -139,20 +139,21 @@
 &namclo ! (closed sea : need ln_domclo = .true. in namcfg)
 !-----------------------------------------------------------------------
-   rn_lon_opnsea = -2.0     ! longitude seed of open ocean
-   rn_lat_opnsea = -2.0     ! latitude  seed of open ocean
+   rn_lon_opnsea = -0.0    ! longitude seed of open ocean
+   rn_lat_opnsea = -0.0    ! latitude  seed of open ocean
    nn_closea = 8           ! number of closed seas ( = 0; only the open_sea mask will be computed)
-   !                name   ! lon_src ! lat_src ! lon_trg ! lat_trg ! river mouth area   ! net evap/precip correction scheme ! radius tgt   ! id trg
-   !                       ! (degree)! (degree)! (degree)! (degree)! local/coast/global ! (glo/rnf/emp)                     !     (m)      !
+   !
+   !                name   ! lon_src ! lat_src ! lon_trg ! lat_trg ! river mouth area   ! correction scheme ! radius trg   ! id trg
+   !                       ! (degree)! (degree)! (degree)! (degree)! local/coast/global ! (glo/rnf/emp)     !     (m)      !
    ! North American lakes
-   sn_lake(1) = 'superior' ,  -86.57 ,  47.30  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2    
-   sn_lake(2) = 'michigan' ,  -87.06 ,  42.74  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2    
-   sn_lake(3) = 'huron'    ,  -82.51 ,  44.74  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2    
-   sn_lake(4) = 'erie'     ,  -81.13 ,  42.25  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2    
-   sn_lake(5) = 'ontario'  ,  -77.72 ,  43.62  , -66.49  , 50.45   , 'local'            , 'rnf'                             ,   550000.0 , 2    
+   sn_lake(1) = 'superior' ,  -86.57 ,  47.30  , -66.49  , 50.45   , 'local'            , 'rnf'             ,   550000.0   , 2    
+   sn_lake(2) = 'michigan' ,  -87.06 ,  42.74  , -66.49  , 50.45   , 'local'            , 'rnf'             ,   550000.0   , 2    
+   sn_lake(3) = 'huron'    ,  -82.51 ,  44.74  , -66.49  , 50.45   , 'local'            , 'rnf'             ,   550000.0   , 2    
+   sn_lake(4) = 'erie'     ,  -81.13 ,  42.25  , -66.49  , 50.45   , 'local'            , 'rnf'             ,   550000.0   , 2    
+   sn_lake(5) = 'ontario'  ,  -77.72 ,  43.62  , -66.49  , 50.45   , 'local'            , 'rnf'             ,   550000.0   , 2    
    ! African Lake
-   sn_lake(6) = 'victoria' ,   32.93 ,  -1.08  ,  30.44  , 31.37   , 'coast'            , 'emp'                             ,   100000.0 , 3    
+   sn_lake(6) = 'victoria' ,   32.93 ,  -1.08  ,  30.44  , 31.37   , 'coast'            , 'emp'             ,   100000.0   , 3    
    ! Asian Lakes
-   sn_lake(7) = 'caspian'  ,   50.0  ,  44.0   ,   0.0   ,  0.0    , 'global'           , 'glo'                             ,        0.0 , 1     
-   sn_lake(8) = 'aral'     ,   60.0  ,  45.0   ,   0.0   ,  0.0    , 'global'           , 'glo'                             ,        0.0 , 1    
+   sn_lake(7) = 'caspian'  ,   50.0  ,  44.0   ,   0.0   ,  0.0    , 'global'           , 'glo'             ,        0.0   , 1     
+   sn_lake(8) = 'aral'     ,   60.0  ,  45.0   ,   0.0   ,  0.0    , 'global'           , 'glo'             ,        0.0   , 1    
 /
 !-----------------------------------------------------------------------
Index: MO/branches/2019/ENHANCE-03_domcfg/sfmakedepend
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/sfmakedepend	(revision 11627)
+++ 	(revision )
@@ -1,787 +1,0 @@
-#!/usr/bin/env perl
-#
-# svn $Id: sfmakedepend 751 2015-01-07 22:56:36Z arango $
-#######################################################################
-# Copyright (c) 2002-2015 The ROMS/TOMS Group                         #
-#   Licensed under a MIT/X style license                              #
-#   See License_ROMS.txt                                              #
-##################################################### Kate Hedstrom ###
-#                                                                     #
-# Fortran 90/77 dependency checker, version 2007b.                    #
-#                                                                     #
-#######################################################################
-
-use 5.6.0;
-use strict;
-use File::Basename;
-use Getopt::Long;
-use Pod::Usage;
-use Getopt::Long;
-use File::Copy;
-
-my ($opt_help, $opt_man, $opt_file, @incdirs, @srcdirs, @defines,
-    $opt_modext, $opt_case, $compiler, $opt_depend, $drop_circ);
-our ($cpp, $add_ext, $mod_dir, $libdeps, $longpath, $obj_dir, %defines,
-    $silent);
-our $obj_ext = 'o';
-our $ext = 'f';
-
-# Parse the arguments, do the right thing for --help, --man.
-Getopt::Long::Configure( "bundling" );
-GetOptions("help" => \$opt_help,    "man" => \$opt_man,
-        "file=s" => \$opt_file,     "I=s@" => \@incdirs,
-	"srcdir=s@" => \@srcdirs,   "moddir=s" => \$mod_dir,
-        "fext=s" => \$ext,          "objext=s" => \$obj_ext,
-	"modext=s" => \$opt_modext, "addext=s" => \$add_ext,
-	"case=s" => \$opt_case,     "compiler=s" => \$compiler,
-	"depend=s" => \$opt_depend, "cpp" => \$cpp,
-	"libdeps" => \$libdeps,     "drop" => \$drop_circ,
-	"longpath" => \$longpath,   "objdir=s" => \$obj_dir,
-	"D=s@" => \@defines,        "silent" => \$silent )
-  or pod2usage("Try '$0 --help' for more information");
-pod2usage(-verbose => 1) if $opt_help;
-pod2usage(-verbose => 2) if $opt_man;
-
-our @suffixes = qw( .c .C .cc .cxx .cpp .f .F .f90 .F90 .f95 .F95 .for);
-our @mod_files = ();
-
-my $mf = 'Makefile';
-if ($opt_file) {
-    $mf = $opt_file;
-} elsif (-f "makefile") {
-    $mf = 'makefile';
-}
-if ( !(-f $mf) && ($mf ne '-')) {
-    system "touch $mf";
-}
-
-if (@defines) {
-    my $foo;
-    foreach $foo (@defines) {
-        my($before, $after) = split /=/, $foo;
-	$defines{$before} = $after;
-    }
-}
-
-# extension used for compiler's private module information
-our $mod_ext = "mod";
-our $depend = "obj";
-our $case = "lower";
-our $obj_dep_flag;
-my $ll = 79;             # maximum line length in Makefile
-my $cray;
-my $parasoft;
-my $nothing = "\n";
-
-# Check the compiler first, then override the compiler-specific defaults
-if ($compiler) {
-    if ($compiler eq "crayold") {
-        $cray = 1;
-        $case = "lower";
-        $depend = "obj";
-        $obj_dep_flag = "-p";
-    } elsif ($compiler eq "cray") {
-        $case = "upper";
-    } elsif ($compiler eq "parasoft") {
-        $parasoft = 1;
-        $case = "lower";
-        $depend = "obj";
-        $obj_dep_flag = "-module";
-    } elsif ($compiler eq "sgiold") {
-        $mod_ext = "kmo";
-        $case = "upper";
-    } elsif ($compiler eq "sgi" or $compiler eq "hp" or
-	     $compiler eq "absoft") {
-        $case = "upper";
-    } elsif ($compiler eq "nag" or $compiler eq "ibm" or
-	     $compiler eq "sun") {
-        $case = "lower";
-    } else {
-        warn "Unknown compiler: $compiler\n";
-    }
-}
-
-$depend = $opt_depend if defined($opt_depend);
-if ($depend eq "obj") {
-    $drop_circ = 1;
-}
-
-$case = $opt_case if defined($opt_case);
-
-# extension used for compiler's private module information
-if ($opt_modext) {
-    $mod_ext = $opt_modext;
-}
-
-# need to add some more dependencies so the .f file gets created
-our $need_f;
-if ($cpp and $depend eq "obj") {
-    $need_f = 1;
-}
-
-my $mystring = '# DO NOT DELETE THIS LINE - used by make depend';
-
-# Search for the includes in all the files
-my $file;
-my %sources;
-foreach $file (@ARGV) {
-    my $filesrc = findsrc($file);
-    $sources{$file} = new Source_File($file, $filesrc, $filesrc);
-    $sources{$file}->find_includes();
-}
-
-# Create new Makefile with new dependencies.
-
-if ($mf ne "-") {
-    copy( "$mf", "$mf.old");
-    open(MFILE, "$mf.old") || die "can't read Makefile $mf.old: $!\n";
-    open(NMFILE, "> $mf") || die "can't write $mf: $!\n";
-    select(NMFILE);
-
-    while (<MFILE>) {
-        if (!/$mystring/) {
-            print;
-        } else {
-            last;
-        }
-    }
-    print $mystring, "\n";
-}
-
-# Now print out include and use dependencies in sorted order.
-my $target;
-foreach $target (sort keys(%sources)) {
-    $sources{$target}->print();
-# Hernan hack
-    print $nothing;
-}
-
-# print out module dependencies
-if ( !( $cray || $parasoft) ) {
-    my $modname;
-    foreach $modname (sort keys(%main::mod_files)) {
-        my ($name, $path, $suffix) = fileparse(
-	    $sources{$main::mod_files{$modname}}->{'filepath'}, @suffixes);
-        my $object = $name . "." . $obj_ext;
-        if (!( $drop_circ && lc($modname) eq lc($name)) ) {
-            $object =~ s#^\./##;
-            my $modfile = "$modname.$mod_ext";
-            my $objfile = $object;
-            $modfile = $mod_dir . '/' . $modfile if $mod_dir;
-            $objfile = $obj_dir . '/' . $objfile if $obj_dir;
-            print "$modfile: $objfile\n";
-        }
-    }
-}
-
-#
-# End of main
-#
-
-sub findfile {
-# Let's see if we can find the included file. Look in current
-# directory first, then in directories from -I arguments.
-    my $file = shift;
-    my ($found, $i, $filepath);
-
-    $found = 0;
-
-    if ( -f $file ) {
-        $found = 1;
-        $file =~ s#^\./##;          # convert ./foo.h to foo.h
-        return $file;
-    }
-    foreach $i (0 .. $#incdirs) {
-        $filepath = $incdirs[$i]."/".$file;
-        if ( -f $filepath ) {
-	    $found = 1;
-            $filepath =~ s#^\./##;          # convert ./foo.h to foo.h
-            return $filepath;
-        }
-    }
-    if ( ! $found ) {
-	$filepath = "";
-    }
-    $filepath;
-}
-#-----------------------------------------------------------------------
-sub findsrc {
-# Let's see if we can find the source-file.  Look in current
-# directory first, then in directories from --srcdir arguments.
-    my $src = shift;
-    my($found, $i, $srcpath);
-
-    $found = 0;
-
-    if ( -f $src ) {
-        $found = 1;
-        $src =~ s#^\./##;          # convert ./foo.h to foo.h
-        return $src;
-    }
-    foreach $i (0 .. $#srcdirs) {
-        $srcpath = $srcdirs[$i]."/".$src;
-        if ( -f $srcpath ) {
-	    $found = 1;
-            $srcpath =~ s#^\./##;          # convert ./foo.h to foo.h
-            return $srcpath;
-        }
-    }
-    if ( ! $found ) {
-	$srcpath = "";
-    }
-    $srcpath;
-}
-
-#################################################################
-package Source_File;
-
-# hash containing names of included files
-my %inc_files = ();
-my %flist;
-
-# Constructor
-sub new {
-    my $type = shift;
-    my $filename = shift;
-    my $path = shift;
-    my $parent = shift;
-    my $self = {};
-    $self->{'Source_File'} = $filename;
-    $self->{'filepath'} = $path;
-    $self->{'parent'} = $parent;
-    $self->{'includes'} = {};
-    $self->{'uses'} = {};
-    $self->{'modules'} = {};
-    bless $self;
-}
-
-sub find_includes {
-    my $self = shift;
-    my $file = $self->{'filepath'};
-    my $parent = $self->{'parent'};
-    my($after, $filepath, $ref, $included, $use, $modname);
-    local(*FILE);
-    local($_);
-
-    if (-f $file) {
-        open(FILE, $file) || $silent || warn "Can't open $file: $!\n";
-    } else {
-	return;
-    }
-    while (<FILE>) {
-	$included = "";
-	$use = "";
-        # look for Fortran style includes
-        if (/^\s*include\s*['"]([^"']*)["']/i) {
-            $included = $1;
-	    $after = $';
-	# C preprocessor style includes
-        } elsif (/^#\s*include\s*["<]([^">]*)[">]/) {
-            $included = $1;
-	    $after = $';
-        # Fortran 90 "use"
-        } elsif (/^\s*use\s+(\w+)/i) {
-	    # Gavin Salam attempt at dealing with multiple uses on one line
-	    # remove trailing comments (do not take uses after a comment!)
-	    s/\!.*//;
-	    # try and get multiple use commands
-	    my @commands = split(';',$_);
-	    while (my $command = shift @commands) {
-	      if ($command =~ /^\s*use\s+(\w+)/i) {
-		$use = $1;
-		# Change the case as needed - compiler dependent.
-		if ($main::case eq "upper") {
-		  $use = uc($use);
-		} elsif ($main::case eq "lower") {
-		  $use = lc($use);
-		}
-		$self->{'uses'}{$use} = 1;
-	      }
-	    }
-	# Fortran 90 module
-	} elsif (/^\s*module\s+(\w+)/i) {
-	    $modname = $1;
-	    if ($main::case eq "upper") {
-		$modname = uc($modname);
-	    } elsif ($main::case eq "lower") {
-		$modname = lc($modname);
-	    }
-	    # Skip "module procedure" in interface blocks
-	    next if (lc($modname) eq "procedure");
-
-	    $main::mod_files{$modname} = $parent;
-	    $self->{'modules'}{$modname} = 1;
-	}
-	# C preprocessor style includes of a -DROMS_HEADER sort
-        my $key;
-        foreach $key (keys(%defines)) {
-	    if (/^#\s*include\s*($key)/) {
-	        $included = $defines{$key};
-	        $after = $';
-	    }
-	}
-	if ($included) {
-	    # See if we've already searched this file
-	    if ( $inc_files{$included} ) {
-		$filepath = $inc_files{$included}{'filepath'};
-	    } else {
-                $filepath = main::findfile($included);
-		$ref = new Source_File($included, $filepath, $parent);
-                $inc_files{$included} = $ref;
-# Search included file for includes
-		$ref->find_includes();
-	    }
-            if ( $filepath ) {
-		$self->{'includes'}{$included} = 1;
-	    } else {
-                if ($after !~ /bogus/i) {
-		    $silent || warn "Can't find file: $included\n";
-		}
-	    }
-	}
-    }
-    close FILE;
-}
-
-sub print_includes {
-    my $self = shift;
-    my $target = shift;
-    my $len_sum = shift;
-    my $file;
-    my $len;
-
-    foreach $file (keys %{$self->{'includes'}}) {
-	if (!$flist{$file}) {
-	    $flist{$file} = 1;
-	    my $ref = $inc_files{$file};
-	    if ($longpath) {
-                $len = length($ref->{'filepath'}) + 1;
-            } else {
-                $len = length($ref->{'Source_File'}) + 1;
-            }
-	    if (($len_sum + $len > $ll) &&
-	           (length($target) + 1 < $len_sum)) {
-	        print "\n$target:";
-	        $len_sum = length($target) + 1;
-	    }
-	    if ($longpath) {
-	        print " " . $ref->{'filepath'};
-	    } else {
-	        print " " . $ref->{'Source_File'};
-	    }
-    	    $len_sum += $len;
-	    $len_sum = $ref->print_includes($target, $len_sum);
-        }
-    }
-    $len_sum;
-}
-
-# return list of modules used by included files
-sub inc_mods {
-    my $self = shift;
-    my($file, $ref, $mod, @sub_list);
-    my @list = ();
-
-    foreach $mod (keys %{$self->{'uses'}}) {
-	push(@list, $mod);
-    }
-
-    foreach $file (keys %{$self->{'includes'}}) {
-	$ref = $inc_files{$file};
-	@sub_list = $ref->inc_mods();
-	@list = (@list, @sub_list);
-    }
-    @list;
-}
-
-# filenames containing the modules used by file and all its includes
-sub find_mods {
-    my $self = shift;
-    my($modname, $file);
-    my @module_files = ();
-    my @mod_list = ();
-
-# find modules used by include files
-    if (%{$self->{'includes'}}) {
-	foreach $file (keys %{$self->{'includes'}}) {
-	    my $ref = $inc_files{$file};
-	    my @list = $ref->inc_mods();
-	    @mod_list = (@mod_list, @list);
-	}
-    }
-
-# add them to the uses list (hash ensures uniqueness)
-    foreach $modname (@mod_list) {
-	$self->{'uses'}{$modname} = 1;
-    }
-
-# now find the filename that contains the module information
-    foreach $modname (keys %{$self->{'uses'}}) {
-	if ($main::depend eq "obj") {
-	    if ($file = $main::mod_files{$modname}) {
-                my $base = main::basename($file, @main::suffixes);
-		$file = $base . "." . $main::obj_ext;
-		push(@module_files, $file);
-	    } elsif ( !$silent ) {
-		warn "Don't know where module $modname lives.\n";
-	    }
-	} else {
-	    if ($main::libdeps or defined($main::mod_files{$modname})) {
-		$modname .= "." . $main::mod_ext;
-		push(@module_files, $modname);
-	    } elsif ( !$silent ) {
-		warn "Couldn't locate source for module $modname\n";
-	    }
-	}
-    }
-    sort(@module_files);
-}
-
-sub print {
-    my $self = shift;
-    my $source = $self->{'Source_File'};
-    my $compile_string = "\t" . '$(F90) $(F90FLAGS) -c';
-    my($len_sum, $len);
-    my($base, $object, $modname, $flag, $target, $ftarget);
-
-    $base = main::basename($source, @main::suffixes);
-    $base = $main::obj_dir . '/' . $base if $main::obj_dir;
-    $target = $base . "." . $main::obj_ext;
-    if ($main::cpp) {
-	$ftarget = $base . "." . $main::ext;
-    }
-
-    $flag = $main::obj_dep_flag;
-
-# print out "include" dependencies
-    %flist = ();
-    if (%{$self->{'includes'}}) {
-	$len_sum = length($target) + 1;
-	if ($main::add_ext) {
-	    print "$base.$main::add_ext ";
-	    $len_sum += length($base) + length($main::add_ext) + 2;
-	}
-        print "$target:";
-        $self->print_includes($target, $len_sum);
-        print "\n";
-        if ($main::cpp) {
-            %flist = ();
-	    $len_sum = length($ftarget) + 1;
-            print "$ftarget:";
-            $self->print_includes($ftarget, $len_sum);
-            print "\n";
-        }
-    }
-
-# clean out "use" of modules in own file
-    my $mod;
-    foreach $mod ( keys %{$self->{'uses'}} ) {
-	if ( ${$self->{'modules'}}{$mod} ) {
-	    delete ${$self->{'uses'}}{$mod};
-	}
-    }
-
-# print out "use" dependencies
-    if (%{$self->{'uses'}} || %{$self->{'includes'}}) {
-	my @module_files = $self->find_mods();
-        $len_sum = 0;
-	my $file;
-	foreach $file (@module_files) {
-	    $file = $main::mod_dir . '/' . $file if $main::mod_dir;
-            if( $len_sum < 1 ) {
- 	        $len_sum = length($target) + 1;
- 	        print "$target:";
-            }
-	    $len = length($file) + 1;
-	    if (($len_sum + $len > $ll) &&
-		     (length($target) + 1 < $len_sum)) {
-		print "\n$target:";
-		$len_sum = length($target) + 1;
-	    }
-	    $len_sum += $len;
-	    print " " . $file;
-	}
-	if ($main::need_f) {
-	    $len = length($ftarget) + 1;
-	    if (($len_sum + $len > $ll) &&
-		     (length($target) + 1 < $len_sum)) {
-		print "\n$target:";
-		$len_sum = length($target) + 1;
-	    }
-	    print " " . $ftarget if $len_sum;
-	}
-        print "\n" if $len_sum;
-# extra Cray / Parasoft stuff
-        if ($flag) {
-	    print $compile_string;
-	    foreach $file (@module_files) {
-		print $flag . $file;
-	    }
-	    if ($main::cpp) {
-	        print " " . $ftarget . "\n";
-	    } else {
-	        print " " . $source . "\n";
-	    }
-	}
-    }
-}
-
-__END__
-
-sfmakedepend - Fortran Dependency Checker
-
-=head1 SYNOPSIS
-
-sfmakedepend [--help] [--man] [--file=file] [-I dir]
-             [--srcdir dir] [--objdir dir] [--moddir dir]
-             [--fext ext] [--objext ext] [--modext ext]
-             [-D TAG=file] [--addext ext] [--case=up|down|asis]
-             [--compiler=crayold|cray|sgiold|sgi|nag|ibm|
-                                 parasoft|hp|absoft|sun]
-             [--depend=mod|obj] [--cpp] [--libdeps] [--drop]
-             [--silent] file ...
-
-=head1 DESCRIPTION
-
-This is a makedepend script for Fortran, including Fortran 90.
-It searches for Fortran style includes, C preprocessor includes,
-and module dependencies to the extent that I understand them.
-
-Your files must have an extension listed in the @suffixes list
-in the code. You might also want to modify $compile_string;
-the compiler is called $(F90).
-
-=head1 OPTIONS AND ARGUMENTS
-
-=over 4
-
-=item I<--help>
-
-Print more details about the arguments.
-
-=item I<--man>
-
-Print a full man page.
-
-=item I<--file file>
-
-Change the name of the current Makefile (default is Makefile).
-Use "--file -" to write to stdout.
-
-=item I<-I dir>
-
-Look in alternate directories for the include files. There can be
-several "-I dir" options used at once. The current directory is
-still searched first.
-
-=item I<--srcdir dir>
-
-Look in alternate directories for the source files, much like VPATH.
-It can be used multiple times to search in more than one directory.
-
-=item I<--objdir dir>
-
-Tells sfmakedepend to prepend objdir to all object references (and
-cpp output files if used). This is required if you use a build
-directory that isn't your current directory.
-
-=item I<--moddir dir>
-
-Tells sfmakedepend to prepend moddir to all module references. This
-is required if you use a common module library directory for a
-multi-directory project (+moddir= .. option on HP, eg.).
-
-=item I<--fext>
-
-This is used with the --cpp switch for compilers
-which expect an extension other than .f on source files.  For
-instance, one might choose to use "--fext f90".
-
-=item I<--objext ext>
-
-Tells sfmakedepend what extension to use for object files. The
-default is "o", but "obj", for instance, is
-appropriate on MS-DOG etc.
-
-=item I<--modext ext>
-
-Specifies the extension to use for Fortran 90 module files. The default
-extension is "mod" since this seems to be an emerging standard. Let
-me know if other compilers use a different filename for the module
-information (keep that --compiler option up to date).
-
-=item I<--D tag=file>
-
-Tells sfmakedepend to search the source files for lines such as:
-
-   #include MY_CHEESE
-
-Where MY_CHEESE is set with a -DMY_CHEESE="wensleydale.h".
-
-=item I<--addext ext>
-
-Tells sfmakedepend to add targets with extension add_ext to the rules
-for object files. For instance, to operate with (f77) ftnchek .prj
-files, you could use
-
-`--addext prj' to get rules like:
-foo.prj foo.o: ...
-
-=item I<--case up|down|asis>
-
-Controls case of module names when generating module file names. Only
-relevant where the module file name is named after the module rather
-than after the source file.
-
-=item I<--compiler=crayold|cray|sgiold|sgi|nag|ibm|parasoft|hp|absoft|sun>
-
-Controls the type of target compiler, setting the module name and other
-options appropriately. The cray option assumes that FFLAGS includes
--e m for creating the .mod file, while crayold refers to the default of
-including that information in the object file.
-
-=item I<--depend=mod|obj>
-
-Whether to use the module information file or the module object file
-in dependencies.
-
-=item I<--cpp>
-
-There are times when one might choose to run .F files through cpp and
-to keep the .f files (for the debugger or for a custom preprocessor).
-In that case, make must be told about the cpp include dependencies of
-the .f files. This option will provide those dependencies.
-
-=item I<--libdeps>
-
-Generate dependencies on modules for which source code is not
-available. Otherwise a warning is issued, but the dependency is not
-listed.
-
-=item I<--longpath>
-
-Keep the full path to the include files in the dependency. Otherwise,
-just print the filename and use VPATH to provide the directory
-information.
-
-=item I<--drop>
-
-Drop module dependencies (my_mod.mod: my_mod.o). This is also done when
---depend=obj.
-
-=item I<--silent>
-
-The default is to warn about unfound files. This option causes those
-warnings to not be printed.
-
-=item I<[file ...]>
-
-The list of source files to search for dependencies.
-
-=back
-
-=head1 EXAMPLE
-
-Search for include files in /usr/local/include:
-
-   sfmakedepend --cpp --fext=f90 -I /usr/local/include *.F
-
-Example usage in gnuMakefile:
-
-   SRCDIRS= srcdir1 srcdir2 srcdir3 ...
-   FSRCS0 := $(foreach DIR, . $(SRCDIRSH),$(wildcard $(DIR)/*.f))
-   FSRCS  := $(sort $(notdir $(FSRCS0)))
-
-   F_makedepend=sfmakedepend  --file - $(addprefix --srcdir ,$(SRCDIRSH)) \
-                                      $(subst -I,-I ,$(Includes))
-   depend $(MAKEFILE_INC):
-             $(F_makedepend) $(FSRCS) >> $(MAKEFILE_INC)
-
-   include $(MAKEFILE_INC)
-
-=head1 AUTHOR
-
-Kate Hedstrom (kate@arsc.edu)
-   First Perl 5 Fortran 90 version November 1994.
-
-=head1 CONTRIBUTORS
-
-   Dave Love         (d.love@dl.ac.uk)
-       Added the --objext and --addext options (1996).
-
-   Patrick Jessee
-       Added hp support (1997, now in --compiler option).
-
-   Sergio Gelato     (gelato@tac.dk)
-       Added the --compiler, --depend, --case options, and
-       --(no)libdeps (1998).
-
-   Tobias Buchal     (buchal@ifh.bau-verm.uni-karlsruhe.de)
-       Added the --srcdir and --file - options (1999).
-
-   Klaus Ramstock    (klaus@tdm234.el.utwente.nl)
-       Added the --moddir option (1999).
-
-   Sandra Schroedter (sandra@fsg-ship.de)
-       Fix to preserve Makefile links (1999).
-
-   Holger Bauer      (bauer@itsm.uni-stuttgart.de)
-       Added the --drop option (2000).
-
-   Gavin Salam       (salam@lpthe.jussieu.fr)
-       Made it recognize multiple "use"s on one line (2005).
-
-Others I've doubtless forgotten.
-
-=cut
-#
-# NOTES
-#	This makedepend script is my first attempt at using perl 5
-#	objects.  Therefore, it may not be the best example of how
-#	to do this.  Also, it requires perl 5 and will die if you
-#	to use it with an older perl.  The latest version is
-#	available from:
-#
-#		http://www.arsc.edu/~kate/Perl/
-#		ftp://ahab.rutgers.edu/pub/perl/sfmakedepend
-#
-#	Fortran 90 introduces some interesting dependencies.  Two
-#	compilers I have access to (NAG f90 and IBM xlf) produce a
-#	private "mod_name.mod" file if you define "module mod_name"
-#	in your code.  This file is used by the compiler when you
-#	use the module as a consistency check (type-safe).  On the
-#	other hand, the Cray and Parasoft compilers store the module
-#	information in the object file and then files which use the
-#	modules need to be compiled with extra flags pointing to the
-#	module object files.
-#
-#	This script assumes that all the files using and defining
-#	modules are in the same directory and are all in the list of
-#	files to be searched.  It seems that the industry has not
-#	settled on a practical way to deal with a separate modules
-#	directory, anyway.
-#
-#	I sometimes include non-existent files as a compile time
-#	consistency check:
-#
-#	   #ifndef PLOTS
-#	   #include "must_define_PLOTS"       /* bogus include */
-#	   #endif
-#
-#	This program warns about include files it can't find, but
-#	not if there is a "bogus" on the same line.
-#
-#     *	The f90 module dependencies can confuse some versions of
-#	make, especially of the System V variety.  We use gnu
-#	make because it has no problems with these dependencies.
-#
-# BUGS
-#	It can sometimes produce duplicate dependencies.
-#
-#	It treats C preprocessor includes the same as Fortran
-#	includes.  This can add unnecessary dependencies if you
-#	use the -s flag and both kinds of includes.
-#
-#       Please let me know if you find any others.
-#	Kate Hedstrom
-#	kate@arsc.edu
Index: /NEMO/branches/2019/ENHANCE-03_domcfg/src/domclo.F90
===================================================================
--- /NEMO/branches/2019/ENHANCE-03_domcfg/src/domclo.F90	(revision 11627)
+++ /NEMO/branches/2019/ENHANCE-03_domcfg/src/domclo.F90	(revision 11628)
@@ -238,5 +238,5 @@
 
             !! define estuary
-            !! deal with local/coast cases
+            !! deal with global/local/coastal cases
             SELECT CASE (cloc)
             CASE ('global')
