Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ref
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ref	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ref	(revision 12210)
@@ -1390,5 +1390,6 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-   ln_ctl = .FALSE.                 ! Toggle all report printing on/off (T/F); Ignored if sn_cfctl%l_config is T
+   sn_cfctl%l_glochk = .FALSE.    ! Range sanity checks are local (F) or global (T). Set T for debugging only
+   sn_cfctl%l_allon  = .FALSE.    ! IF T activate all options. If F deactivate all unless l_config is T
      sn_cfctl%l_config = .TRUE.     ! IF .true. then control which reports are written with the following
        sn_cfctl%l_runstat = .TRUE.  ! switches and which areas produce reports with the proc integer settings.
@@ -1396,6 +1397,7 @@
        sn_cfctl%l_oceout  = .FALSE. ! that  all areas report.
        sn_cfctl%l_layout  = .FALSE. !
-       sn_cfctl%l_mppout  = .FALSE. !
-       sn_cfctl%l_mpptop  = .FALSE. !
+       sn_cfctl%l_prtctl  = .FALSE. !
+       sn_cfctl%l_prttrc  = .FALSE. !
+       sn_cfctl%l_oasout  = .FALSE. !
        sn_cfctl%procmin   = 0       ! Minimum area number for reporting [default:0]
        sn_cfctl%procmax   = 1000000 ! Maximum area number for reporting [default:1000000]
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/doc/latex/NEMO/subfiles/chap_misc.tex
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/doc/latex/NEMO/subfiles/chap_misc.tex	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/doc/latex/NEMO/subfiles/chap_misc.tex	(revision 12210)
@@ -362,56 +362,140 @@
 
 %% =================================================================================================
-\subsection{Control print}
-
-The \np{ln_ctl}{ln\_ctl} switch was originally used as a debugging option in two modes:
-
-\begin{enumerate}
-\item {\np{ln_ctl}{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and
-ZDF modules.
-This option is very helpful when diagnosing the origin of an undesired change in model results. }
-
-\item {also \np{ln_ctl}{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between
-mono and multi processor runs.}
+\subsection{Status and debugging information output}
+
+
+NEMO can produce a range of text information output either: in the main output
+file (ocean.output) written by the normal reporting processor (narea == 1) or various
+specialist output files (e.g. layout.dat, run.stat, tracer.stat etc.). Some, for example
+run.stat and tracer.stat, contain globally collected values for which a single file is
+sufficient. Others, however, contain information that could, potentially, be different
+for each processing region. For computational efficiency, the default volume of text
+information produced is reduced to just a few files from the narea=1 processor.
+
+When more information is required for monitoring or debugging purposes, the various
+forms of output can be selected via the \np{sn\_cfctl} structure. As well as simple
+on-off switches this structure also allows selection of a range of processors for
+individual reporting (where appropriate) and a time-increment option to restrict
+globally collected values to specified time-step increments.
+
+Most options within the structure are influenced by the top-level switches shown here
+with their default settings:
+
+\begin{verbatim}
+   sn_cfctl%l_allon  = .FALSE.    ! IF T activate all options. If F deactivate all unless l_config is T
+     sn_cfctl%l_config = .TRUE.     ! IF .true. then control which reports are written with the following
+\end{verbatim}
+
+The first switch is a convenience option which can be used to switch on and off all
+sub-options. However, if it is false then switching off all sub-options is only done
+if \texttt{sn_cfctl%l\_config} is also false. Specifically, the logic is:
+
+\begin{verbatim}
+  IF ( sn_cfctl%l_allon ) THEN
+    set all suboptions .TRUE.
+    and set procmin, procmax and procincr so that all regions are selected ([0,10000000,1], respectively)
+  ELSEIF ( sn_cfctl%l_config ) THEN
+    honour individual settings of the suboptions from the namelist
+  ELSE
+    set all suboptions .FALSE.
+  ENDIF
+\end{verbatim}
+
+Details of the suboptions follow but first an explanation of the stand-alone option:
+\texttt{sn_cfctl%l_glochk}.  This option modifies the action of the early warning checks
+carried out in \textt{stpctl.F90}. These checks detect probable numerical instabilites
+by searching for excessive sea surface heights or velocities and salinity values
+outside a sensible physical range. If breaches are detected then the default behaviour
+is to locate and report the local indices of the grid-point in breach. These indices
+are included in the error message that precedes the model shutdown. When true,
+\texttt{sn_cfctl%l_glochk} modifies this action by performing a global location of
+the various minimum and maximum values and the global indices are reported. This has
+some value in locating the most severe error in cases where the first detected error
+may not be the worst culprit.
+
+\subsubsection{Control print suboptions}
+
+The options that can be individually selected fall into three categories:
+
+\begin{enumerate} \item{Time step progress information} This category includes
+\texttt{run.stat} and \texttt{tracer.stat} files which record certain physical and
+passive tracer metrics (respectively). Typical contents of \texttt{run.stat} include
+global maximums of ssh, velocity; and global minimums and maximums of temperature
+and salinity.  A netCDF version of \texttt{run.stat} (\texttt{run.stat.nc}) is also
+produced with the same time-series data and this can easily be expanded to include
+extra monitoring information.  \texttt{tracer.stat} contains the volume-weighted
+average tracer value for each passive tracer. Collecting these metrics involves
+global communications and will impact on model efficiency so both these options are
+disabled by default by setting the respective options, \texttt{sn\_cfctl%runstat} and
+\texttt{sn\_cfctl%trcstat} to false. A compromise can be made by activating either or
+both of these options and setting the \texttt{sn\_cfctl%timincr} entry to an integer
+value greater than one. This increment determines the time-step frequency at which
+the global metrics are collected and reported.  This increment also applies to the
+time.step file which is otherwise updated every timestep.
+\item{One-time configuration information/progress logs}
+
+Some run-time configuration information and limited progress information is always
+produced by the first ocean process. This includes the \texttt{ocean.output} file
+which reports on all the namelist options read by the model and remains open to catch
+any warning or error messages generated during execution. A \texttt{layout.dat}
+file is also produced which details the MPI-decomposition used by the model. The
+suboptions: \texttt{sn\_cfctl%oceout} and \texttt{sn\_cfctl%layout} can be used
+to activate the creation of these files by all ocean processes.  For example,
+when \texttt{sn\_cfctl%oceout} is true all processors produce their own version of
+\texttt{ocean.output}.  All files, beyond the the normal reporting processor (narea == 1), are
+named with a \_XXXX extension to their name, where XXXX is a 4-digit area number (with
+leading zeros, if required). This is useful as a debugging aid since all processes can
+report their local conditions. Note though that these files are buffered on most UNIX
+systems so bug-hunting efforts using this facility should also utilise the \fortran:
+
+\begin{verbatim} 
+   CALL FLUSH(numout)
+\end{verbatim}
+
+statement after any additional write statements to ensure that file contents reflect
+the last model state. Associated with the \texttt{sn\_cfctl%oceout} option is the
+additional \texttt{sn\_cfctl%oasout} suboption. This does not activate its own output
+file but rather activates the writing of addition information regarding the OASIS
+configuration when coupling via oasis and the sbccpl routine. This information is
+written to any active \texttt{ocean.output} files.
+\item{Control sums of trends for debugging}
+
+NEMO includes an option for debugging reproducibility differences between
+a MPP and mono-processor runs.  This is somewhat dated and clearly only
+useful for this purpose when dealing with configurations that can be run
+on a single processor. The full details can be found in this report: \href{
+http://forge.ipsl.jussieu.fr/nemo/attachment/wiki/Documentation/prtctl_NEMO_doc_v2.pdf}{The
+control print option in NEMO} The switches to activate production of the control sums
+of trends for either the physics or passive tracers are the \texttt{sn\_cfctl%prtctl}
+and \texttt{sn\_cfctl%prttrc} suboptions, respectively. Although, perhaps, of limited use for its
+original intention, the ability to produce these control sums of trends in specific
+areas provides another tool for diagnosing model behaviour.  If only the output from a
+select few regions is required then additional options are available to activate options
+for only a simple subset of processing regions. These are: \texttt{sn\_cfctl%procmin},
+\texttt{sn\_cfctl%procmax} and \texttt{sn\_cfctl%procincr} which can be used to specify
+the minimum and maximum active areas and the increment. The default values are set
+such that all regions will be active. Note this subsetting can also be used to limit
+which additional \texttt{ocean.output} and \texttt{layout.dat} files are produced if
+those suboptions are active.
+
 \end{enumerate}
 
-However, in recent versions it has also been used to force all processors to assume the
-reporting role. Thus when \np{ln_ctl}{ln\_ctl} is true all processors produce their own versions
-of files such as: ocean.output, layout.dat, etc.  All such files, beyond the the normal
-reporting processor (narea == 1), are named with a \_XXXX extension to their name, where
-XXXX is a 4-digit area number (with leading zeros, if required). Other reporting files
-such as run.stat (and its netCDF counterpart: run.stat.nc) and tracer.stat contain global
-information and are only ever produced by the reporting master (narea == 1). For version
-4.0 a start has been made to return \np{ln_ctl}{ln\_ctl} to its original function by introducing
-a new control structure which allows finer control over which files are produced. This
-feature is still evolving but it does already allow the user to: select individually the
-production of run.stat and tracer.stat files and to toggle the production of other files
-on processors other than the reporting master. These other reporters can be a simple
-subset of processors as defined by a minimum, maximum and incremental processor number.
-
-Note, that production of the run.stat and tracer.stat files require global communications.
-For run.stat, these are global min and max operations to find metrics such as the gloabl
-maximum velocity. For tracer.stat these are global sums of tracer fields. To improve model
-performance these operations are disabled by default and, where necessary, any use of the
-global values have been replaced with local calculations. For example, checks on the CFL
-criterion are now done on the local domain and only reported if a breach is detected.
-
-Experienced users may wish to still monitor this information as a check on model progress.
-If so, the best compromise will be to activate the files with:
-
-\begin{verbatim}
-     sn_cfctl%l_config = .TRUE.
-       sn_cfctl%l_runstat = .TRUE.
-       sn_cfctl%l_trcstat = .TRUE.
-\end{verbatim}
-
-and to use the new time increment setting to ensure the values are collected and reported
-at a suitably long interval. For example:
-
-\begin{verbatim}
-       sn_cfctl%ptimincr  = 25
-\end{verbatim}
-
-will carry out the global communications and write the information every 25 timesteps. This
-increment also applies to the time.step file which is otherwise updated every timestep.
+
+   sn_cfctl%l_glochk = .FALSE.    ! Range sanity checks are local (F) or global (T). Set T for debugging only
+   sn_cfctl%l_allon  = .FALSE.    ! IF T activate all options. If F deactivate all unless l_config is T
+     sn_cfctl%l_config = .TRUE.     ! IF .true. then control which reports are written with the following
+       sn_cfctl%l_runstat = .FALSE. ! switches and which areas produce reports with the proc integer settings.
+       sn_cfctl%l_trcstat = .FALSE. ! The default settings for the proc integers should ensure
+       sn_cfctl%l_oceout  = .FALSE. ! that  all areas report.
+       sn_cfctl%l_layout  = .FALSE. !
+       sn_cfctl%l_prtctl  = .FALSE. !
+       sn_cfctl%l_prttrc  = .FALSE. !
+       sn_cfctl%l_oasout  = .FALSE. !
+       sn_cfctl%procmin   = 0       ! Minimum area number for reporting [default:0]
+       sn_cfctl%procmax   = 1000000 ! Maximum area number for reporting [default:1000000]
+       sn_cfctl%procincr  = 1       ! Increment for optional subsetting of areas [default:1]
+       sn_cfctl%ptimincr  = 1       ! Timestep increment for writing time step progress info
+
+
 
 \subinc{\input{../../global/epilogue}}
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/doc/namelists/namctl
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/doc/namelists/namctl	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/doc/namelists/namctl	(revision 12210)
@@ -2,5 +2,6 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-   ln_ctl = .FALSE.                 ! Toggle all report printing on/off (T/F); Ignored if sn_cfctl%l_config is T
+   sn_cfctl%l_glochk = .FALSE.    ! Range sanity checks are local (F) or global (T). Set T for debugging only
+   sn_cfctl%l_allon  = .FALSE.    ! IF T activate all options. If F deactivate all unless l_config is T
      sn_cfctl%l_config = .TRUE.     ! IF .true. then control which reports are written with the following
        sn_cfctl%l_runstat = .FALSE. ! switches and which areas produce reports with the proc integer settings.
@@ -8,6 +9,7 @@
        sn_cfctl%l_oceout  = .FALSE. ! that  all areas report.
        sn_cfctl%l_layout  = .FALSE. !
-       sn_cfctl%l_mppout  = .FALSE. !
-       sn_cfctl%l_mpptop  = .FALSE. !
+       sn_cfctl%l_prtctl  = .FALSE. !
+       sn_cfctl%l_prttrc  = .FALSE. !
+       sn_cfctl%l_oasout  = .FALSE. !
        sn_cfctl%procmin   = 0       ! Minimum area number for reporting [default:0]
        sn_cfctl%procmax   = 1000000 ! Maximum area number for reporting [default:1000000]
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/ablmod.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/ablmod.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/ablmod.F90	(revision 12210)
@@ -579,5 +579,5 @@
       CALL iom_put( "taum_oce", ptaum )
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl( tab2d_1=pwndm  , clinfo1=' abl_stp: wndm   : ' )
          CALL prt_ctl( tab2d_1=ptaui  , clinfo1=' abl_stp: utau   : ' )
@@ -594,5 +594,4 @@
                zztmp1 = 0.5_wp * ( u_abl(ji+1,jj,2,nt_a) + u_abl(ji,jj,2,nt_a) )
                zztmp2 = 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) )
-			   
                ptaui_ice(ji,jj) = 0.5_wp * (  rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj)             &
                   &                      +    rhoa(ji  ,jj) * pCd_du_ice(ji  ,jj)  )          &
@@ -605,6 +604,6 @@
          CALL lbc_lnk_multi( 'ablmod', ptaui_ice, 'U', -1., ptauj_ice, 'V', -1. )
          !
-         IF(ln_ctl)   CALL prt_ctl( tab2d_1=ptaui_ice  , clinfo1=' abl_stp: putaui : '   &
-            &                     , tab2d_2=ptauj_ice  , clinfo2='          pvtaui : ' )
+         IF(sn_cfctl%l_prtctl)  CALL prt_ctl( tab2d_1=ptaui_ice  , clinfo1=' abl_stp: putaui : '   &
+            &                               , tab2d_2=ptauj_ice  , clinfo2='          pvtaui : ' )
 #endif
       !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icecor.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icecor.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icecor.F90	(revision 12210)
@@ -165,5 +165,6 @@
       !
       ! controls
-      IF( ln_ctl       )   CALL ice_prt3D   ('icecor')                                                             ! prints
+      IF( sn_cfctl%l_prtctl ) &
+         &                 CALL ice_prt3D   ('icecor')                                                             ! prints
       IF( ln_icectl .AND. kn == 2 ) &
          &                 CALL ice_prt     ( kt, iiceprt, jiceprt, 2, ' - Final state - ' )                       ! prints
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icectl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icectl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icectl.F90	(revision 12210)
@@ -695,5 +695,5 @@
       !!                  ***  ROUTINE ice_prt3D ***
       !!
-      !! ** Purpose : CTL prints of ice arrays in case ln_ctl is activated 
+      !! ** Purpose : CTL prints of ice arrays in case sn_cfctl%prtctl is activated 
       !!
       !!-------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rdgrft.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rdgrft.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rdgrft.F90	(revision 12210)
@@ -268,5 +268,5 @@
 
       ! controls
-      IF( ln_ctl       )   CALL ice_prt3D   ('icedyn_rdgrft')                                                             ! prints
+      IF( sn_cfctl%l_prtctl )   CALL ice_prt3D   ('icedyn_rdgrft')                                                        ! prints
       IF( ln_icectl    )   CALL ice_prt     (kt, iiceprt, jiceprt,-1, ' - ice dyn rdgrft - ')                             ! prints
       IF( ln_icediachk )   CALL ice_cons_hsm(1, 'icedyn_rdgrft', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rhg.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rhg.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rhg.F90	(revision 12210)
@@ -88,5 +88,6 @@
       !
       ! controls
-      IF( ln_ctl       )   CALL ice_prt3D   ('icedyn_rhg')                                                             ! prints
+      IF( sn_cfctl%l_prtctl ) &
+         &                 CALL ice_prt3D   ('icedyn_rhg')                                                             ! prints
       IF( ln_icediachk )   CALL ice_cons_hsm(1, 'icedyn_rhg', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation
       IF( ln_icediachk )   CALL ice_cons2D  (1, 'icedyn_rhg',  diag_v,  diag_s,  diag_t,  diag_fv,  diag_fs,  diag_ft) ! conservation
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rhg_evp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rhg_evp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icedyn_rhg_evp.F90	(revision 12210)
@@ -345,5 +345,5 @@
          l_full_nf_update = jter == nn_nevp   ! false: disable full North fold update (performances) for iter = 1 to nn_nevp-1
          !
-!!$         IF(ln_ctl) THEN   ! Convergence test
+!!$         IF(sn_cfctl%l_prtctl) THEN   ! Convergence test
 !!$            DO jj = 1, jpjm1
 !!$               zu_ice(:,jj) = u_ice(:,jj) ! velocity at previous time step
@@ -667,5 +667,5 @@
          ENDIF
 
-!!$         IF(ln_ctl) THEN   ! Convergence test
+!!$         IF(sn_cfctl%l_prtctl) THEN   ! Convergence test
 !!$            DO jj = 2 , jpjm1
 !!$               zresr(:,jj) = MAX( ABS( u_ice(:,jj) - zu_ice(:,jj) ), ABS( v_ice(:,jj) - zv_ice(:,jj) ) )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icethd.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icethd.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/icethd.F90	(revision 12210)
@@ -252,5 +252,6 @@
       ! controls
       IF( ln_icectl )   CALL ice_prt    (kt, iiceprt, jiceprt, 1, ' - ice thermodyn. - ') ! prints
-      IF( ln_ctl    )   CALL ice_prt3D  ('icethd')                                        ! prints
+      IF( sn_cfctl%l_prtctl )   &
+        &               CALL ice_prt3D  ('icethd')                                        ! prints
       IF( ln_timing )   CALL timing_stop('icethd')                                        ! timing
       !
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/iceupdate.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/iceupdate.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ICE/iceupdate.F90	(revision 12210)
@@ -286,5 +286,5 @@
 #endif
       IF( ln_icectl                      )   CALL ice_prt       (kt, iiceprt, jiceprt, 3, 'Final state ice_update') ! prints
-      IF( ln_ctl                         )   CALL ice_prt3D     ('iceupdate')                                       ! prints
+      IF( sn_cfctl%l_prtctl              )   CALL ice_prt3D     ('iceupdate')                                       ! prints
       IF( ln_timing                      )   CALL timing_stop   ('ice_update')                                      ! timing
       !
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/C1D/dyncor_c1d.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/C1D/dyncor_c1d.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/C1D/dyncor_c1d.F90	(revision 12210)
@@ -95,6 +95,6 @@
       
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' cor  - Ua: ', mask1=umask,  &
-         &                       tab3d_2=va, clinfo2=' Va: '       , mask2=vmask )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' cor  - Ua: ', mask1=umask,  &
+         &                                  tab3d_2=va, clinfo2=' Va: '       , mask2=vmask )
       !
    END SUBROUTINE dyn_cor_c1d
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/C1D/dyndmp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/C1D/dyndmp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/C1D/dyndmp.F90	(revision 12210)
@@ -217,6 +217,6 @@
       !
       !                           ! Control print
-      IF( ln_ctl   )   CALL prt_ctl( tab3d_1=ua(:,:,:), clinfo1=' dmp  - Ua: ', mask1=umask,   &
-         &                           tab3d_2=va(:,:,:), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF( sn_cfctl%l_prtctl )   CALL prt_ctl( tab3d_1=ua(:,:,:), clinfo1=' dmp  - Ua: ', mask1=umask,   &
+         &                                    tab3d_2=va(:,:,:), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       !
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/daymod.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/daymod.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/daymod.F90	(revision 12210)
@@ -277,5 +277,5 @@
       IF( nsec_week > 7*nsecd )   nsec_week = ndt05     ! New week
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear
          CALL prt_ctl_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynadv_cen2.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynadv_cen2.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynadv_cen2.F90	(revision 12210)
@@ -139,6 +139,6 @@
       ENDIF
       !                                   ! Control print
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' cen2 adv - Ua: ', mask1=umask,   &
-         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' cen2 adv - Ua: ', mask1=umask,   &
+         &                                  tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
    END SUBROUTINE dyn_adv_cen2
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynadv_ubs.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynadv_ubs.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynadv_ubs.F90	(revision 12210)
@@ -232,6 +232,6 @@
       ENDIF
       !                                         ! Control print
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ubs2 adv - Ua: ', mask1=umask,   &
-         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ubs2 adv - Ua: ', mask1=umask,   &
+         &                                  tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
    END SUBROUTINE dyn_adv_ubs
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynhpg.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynhpg.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynhpg.F90	(revision 12210)
@@ -121,6 +121,6 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' hpg  - Ua: ', mask1=umask,   &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' hpg  - Ua: ', mask1=umask,   &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       IF( ln_timing )   CALL timing_stop('dyn_hpg')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynkeg.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynkeg.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynkeg.F90	(revision 12210)
@@ -147,6 +147,6 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' keg  - Ua: ', mask1=umask,   &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' keg  - Ua: ', mask1=umask,   &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       IF( ln_timing )   CALL timing_stop('dyn_keg')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynldf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynldf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynldf.F90	(revision 12210)
@@ -77,6 +77,6 @@
       ENDIF
       !                                          ! print sum trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ldf  - Ua: ', mask1=umask,   &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ldf  - Ua: ', mask1=umask,   &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       IF( ln_timing )   CALL timing_stop('dyn_ldf')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynldf_iso.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynldf_iso.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynldf_iso.F90	(revision 12210)
@@ -286,6 +286,6 @@
 
       ! print sum trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ldfh - Ua: ', mask1=umask, &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' ldfh - Ua: ', mask1=umask, &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
 
 
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynnxt.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynnxt.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynnxt.F90	(revision 12210)
@@ -361,6 +361,6 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=un, clinfo1=' nxt  - Un: ', mask1=umask,   &
-         &                       tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=un, clinfo1=' nxt  - Un: ', mask1=umask,   &
+         &                                  tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask )
       ! 
       IF( ln_dynspg_ts )   DEALLOCATE( zue, zve )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynspg.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynspg.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynspg.F90	(revision 12210)
@@ -175,6 +175,6 @@
       ENDIF
       !                                      ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg  - Ua: ', mask1=umask, &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg  - Ua: ', mask1=umask, &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       IF( ln_timing )   CALL timing_stop('dyn_spg')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynvor.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynvor.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynvor.F90	(revision 12210)
@@ -179,6 +179,6 @@
       !
       !                       ! print sum trends (used for debugging)
-      IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' vor  - Ua: ', mask1=umask,               &
-         &                     tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' vor  - Ua: ', mask1=umask,               &
+         &                                tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       IF( ln_timing )   CALL timing_stop('dyn_vor')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzad.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzad.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzad.F90	(revision 12210)
@@ -114,6 +114,6 @@
       ENDIF
       !                             ! Control print
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' zad  - Ua: ', mask1=umask,   &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' zad  - Ua: ', mask1=umask,   &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
       IF( ln_timing )   CALL timing_stop('dyn_zad')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzdf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzdf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzdf.F90	(revision 12210)
@@ -492,6 +492,6 @@
       ENDIF
       !                                          ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf  - Ua: ', mask1=umask,               &
-         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf  - Ua: ', mask1=umask,               &
+         &                                  tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
          !
       IF( ln_timing )   CALL timing_stop('dyn_zdf')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/sshwzv.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/sshwzv.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/sshwzv.F90	(revision 12210)
@@ -122,5 +122,5 @@
       !                                           !------------------------------!
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=ssha, clinfo1=' ssha  - : ', mask1=tmask )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=ssha, clinfo1=' ssha  - : ', mask1=tmask )
       !
       IF( ln_timing )   CALL timing_stop('ssh_nxt')
@@ -269,5 +269,5 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=sshb, clinfo1=' sshb  - : ', mask1=tmask )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=sshb, clinfo1=' sshb  - : ', mask1=tmask )
       !
       IF( ln_timing )   CALL timing_stop('ssh_swp')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/in_out_manager.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/in_out_manager.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/in_out_manager.F90	(revision 12210)
@@ -99,16 +99,22 @@
    !!                    output monitoring
    !!----------------------------------------------------------------------
-   LOGICAL ::   ln_ctl           !: run control for debugging
-   TYPE :: sn_ctl                !: optional use structure for finer control over output selection
+   TYPE :: sn_ctl                !: structure for control over output selection
+      LOGICAL :: l_glochk  = .FALSE.  !: range sanity checks are local (F) or global (T)
+                                      !  Use global setting for debugging only;
+                                      !  local breaches will still be reported
+                                      !  and stop the code in most cases.
+      LOGICAL :: l_allon   = .FALSE.  !: overall control; activate all following output options
       LOGICAL :: l_config  = .FALSE.  !: activate/deactivate finer control
-                                      !  Note if l_config is True then ln_ctl is ignored.
-                                      !  Otherwise setting ln_ctl True is equivalent to setting
-                                      !  all the following logicals in this structure True
+                                      !  Note if l_config is True then sn_cfctl%l_allon is ignored.
+                                      !  Otherwise setting sn_cfctl%l_allon T/F is equivalent to 
+                                      !  setting all the following logicals in this structure T/F
+                                      !  and disabling subsetting of processors
       LOGICAL :: l_runstat = .FALSE.  !: Produce/do not produce run.stat file (T/F)
       LOGICAL :: l_trcstat = .FALSE.  !: Produce/do not produce tracer.stat file (T/F)
       LOGICAL :: l_oceout  = .FALSE.  !: Produce all ocean.outputs    (T) or just one (F)
       LOGICAL :: l_layout  = .FALSE.  !: Produce all layout.dat files (T) or just one (F)
-      LOGICAL :: l_mppout  = .FALSE.  !: Produce/do not produce mpp.output_XXXX files (T/F)
-      LOGICAL :: l_mpptop  = .FALSE.  !: Produce/do not produce mpp.top.output_XXXX files (T/F)
+      LOGICAL :: l_prtctl  = .FALSE.  !: Produce/do not produce mpp.output_XXXX files (T/F)
+      LOGICAL :: l_prttrc  = .FALSE.  !: Produce/do not produce mpp.top.output_XXXX files (T/F)
+      LOGICAL :: l_oasout  = .FALSE.  !: Produce/do not write oasis setup info to ocean.output (T/F)
                                       !  Optional subsetting of processor report files
                                       !  Default settings of 0/1000000/1 should ensure all areas report.
@@ -169,5 +175,5 @@
    CHARACTER(lc) ::   ctmp10                !: temporary character 10
    LOGICAL       ::   lwm      = .FALSE.    !: boolean : true on the 1st processor only (always)
-   LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only .OR. ln_ctl
+   LOGICAL       ::   lwp      = .FALSE.    !: boolean : true on the 1st processor only .OR. sn_cfctl%l_oceout=T
    LOGICAL       ::   lsp_area = .TRUE.     !: to make a control print over a specific area
    CHARACTER(lc) ::   cxios_context         !: context name used in xios
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/prtctl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/prtctl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/prtctl.F90	(revision 12210)
@@ -50,5 +50,5 @@
       !!                debugging a new parametrization in mono or mpp. 
       !!
-      !! ** Method  : 2 possibilities exist when setting the ln_ctl parameter to
+      !! ** Method  : 2 possibilities exist when setting the sn_cfctl%prtctl parameter to
       !!                .true. in the ocean namelist:
       !!              - to debug a MPI run .vs. a mono-processor one; 
@@ -64,5 +64,5 @@
       !!                name must be explicitly typed if used. For instance if the 3D
       !!                array tn(:,:,:) must be passed through the prt_ctl subroutine, 
-      !!                it must looks like: CALL prt_ctl(tab3d_1=tn).
+      !!                it must look like: CALL prt_ctl(tab3d_1=tn).
       !!
       !!                    tab2d_1 : first 2D array
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LBC/mppini.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LBC/mppini.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LBC/mppini.F90	(revision 12210)
@@ -171,5 +171,5 @@
       !!----------------------------------------------------------------------
       !
-      llwrtlay = lwp .OR. ln_ctl .OR. sn_cfctl%l_layout
+      llwrtlay = lwm .OR. sn_cfctl%l_layout
       !
       !  0. read namelists parameters
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldfslp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldfslp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldfslp.F90	(revision 12210)
@@ -366,5 +366,5 @@
       CALL lbc_lnk_multi( 'ldfslp', uslp , 'U', -1. , vslp , 'V', -1. , wslpi, 'W', -1., wslpj, 'W', -1. )
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl(tab3d_1=uslp , clinfo1=' slp  - u : ', tab3d_2=vslp,  clinfo2=' v : ', kdim=jpk)
          CALL prt_ctl(tab3d_1=wslpi, clinfo1=' slp  - wi: ', tab3d_2=wslpj, clinfo2=' wj: ', kdim=jpk)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/cpl_oasis3.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/cpl_oasis3.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/cpl_oasis3.F90	(revision 12210)
@@ -203,5 +203,5 @@
       paral(5) = jpiglo                                         ! global extent in x
       
-      IF( ln_ctl ) THEN
+      IF( sn_cfctl%l_oasout ) THEN
          WRITE(numout,*) ' multiexchg: paral (1:5)', paral
          WRITE(numout,*) ' multiexchg: jpi, jpj =', jpi, jpj
@@ -243,5 +243,5 @@
                   ENDIF
 #endif
-                  IF( ln_ctl ) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_Out
+                  IF( sn_cfctl%l_oasout ) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_Out
                   CALL oasis_def_var (ssnd(ji)%nid(jc,jm), zclname, id_part   , (/ 2, 1 /),   &
                      &                OASIS_Out          , ishape , OASIS_REAL, nerror )
@@ -250,6 +250,6 @@
                      CALL oasis_abort ( ssnd(ji)%nid(jc,jm), 'cpl_define', 'Failure in oasis_def_var' )
                   ENDIF
-                  IF( ln_ctl .AND. ssnd(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple"
-                  IF( ln_ctl .AND. ssnd(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple"
+                  IF( sn_cfctl%l_oasout .AND. ssnd(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple"
+                  IF( sn_cfctl%l_oasout .AND. ssnd(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple"
                END DO
             END DO
@@ -288,5 +288,5 @@
                   ENDIF
 #endif
-                  IF( ln_ctl ) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_In
+                  IF( sn_cfctl%l_oasout ) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_In
                   CALL oasis_def_var (srcv(ji)%nid(jc,jm), zclname, id_part   , (/ 2, 1 /),   &
                      &                OASIS_In           , ishape , OASIS_REAL, nerror )
@@ -295,6 +295,6 @@
                      CALL oasis_abort ( srcv(ji)%nid(jc,jm), 'cpl_define', 'Failure in oasis_def_var' )
                   ENDIF
-                  IF( ln_ctl .AND. srcv(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple"
-                  IF( ln_ctl .AND. srcv(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple"
+                  IF( sn_cfctl%l_oasout .AND. srcv(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple"
+                  IF( sn_cfctl%l_oasout .AND. srcv(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple"
 
                END DO
@@ -349,6 +349,6 @@
                CALL oasis_put ( ssnd(kid)%nid(jc,jm), kstep, pdata(nldi:nlei, nldj:nlej,jc), kinfo )
                
-               IF( ln_ctl ) THEN        
-                  IF( kinfo == OASIS_Sent     .OR. kinfo == OASIS_ToRest .OR.   &
+               IF ( sn_cfctl%l_oasout ) THEN        
+                  IF ( kinfo == OASIS_Sent     .OR. kinfo == OASIS_ToRest .OR.   &
                      & kinfo == OASIS_SentOut  .OR. kinfo == OASIS_ToRestOut ) THEN
                      WRITE(numout,*) '****************'
@@ -420,5 +420,5 @@
                   &        kinfo == OASIS_RecvOut .OR. kinfo == OASIS_FromRestOut
                
-               IF( ln_ctl )   WRITE(numout,*) "llaction, kinfo, kstep, ivarid: " , llaction, kinfo, kstep, srcv(kid)%nid(jc,jm)
+               IF ( sn_cfctl%l_oasout )   WRITE(numout,*) "llaction, kinfo, kstep, ivarid: " , llaction, kinfo, kstep, srcv(kid)%nid(jc,jm)
                
                IF( llaction ) THEN
@@ -432,5 +432,5 @@
                   ENDIF
                   
-                  IF( ln_ctl ) THEN        
+                  IF ( sn_cfctl%l_oasout ) THEN        
                      WRITE(numout,*) '****************'
                      WRITE(numout,*) 'oasis_get: Incoming ', srcv(kid)%clname
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcblk.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcblk.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcblk.F90	(revision 12210)
@@ -706,5 +706,5 @@
          CALL lbc_lnk_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1. )
 
-         IF(ln_ctl) THEN
+         IF(sn_cfctl%l_prtctl) THEN
             CALL prt_ctl( tab2d_1=wndm  , clinfo1=' blk_oce_1: wndm   : ')
             CALL prt_ctl( tab2d_1=utau  , clinfo1=' blk_oce_1: utau   : ', mask1=umask,   &
@@ -721,5 +721,5 @@
       ENDIF
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl( tab2d_1=pevp  , clinfo1=' blk_oce_1: pevp   : ' )
          CALL prt_ctl( tab2d_1=psen  , clinfo1=' blk_oce_1: psen   : ' )
@@ -786,5 +786,5 @@
       ENDDO
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl( tab2d_1=zqla  , clinfo1=' blk_oce_2: zqla   : ' )
          CALL prt_ctl( tab2d_1=zqlw  , clinfo1=' blk_oce_2: zqlw   : ', tab2d_2=qsr, clinfo2=' qsr : ' )
@@ -830,5 +830,5 @@
       ENDIF
       !
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl(tab2d_1=zqlw , clinfo1=' blk_oce_2: zqlw  : ')
          CALL prt_ctl(tab2d_1=zqla , clinfo1=' blk_oce_2: zqla  : ', tab2d_2=qsr  , clinfo2=' qsr   : ')
@@ -931,6 +931,6 @@
          CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1., pvtaui, 'V', -1. )
          !
-         IF(ln_ctl)   CALL prt_ctl( tab2d_1=putaui  , clinfo1=' blk_ice: putaui : '   &
-            &                     , tab2d_2=pvtaui  , clinfo2='          pvtaui : ' )
+         IF(sn_cfctl%l_prtctl)  CALL prt_ctl( tab2d_1=putaui  , clinfo1=' blk_ice: putaui : '   &
+            &                               , tab2d_2=pvtaui  , clinfo2='          pvtaui : ' )
       ELSE
          zztmp1 = 11637800.0_wp
@@ -947,5 +947,5 @@
       ENDIF
       !
-      IF(ln_ctl)  CALL prt_ctl(tab2d_1=wndm_ice  , clinfo1=' blk_ice: wndm_ice : ')
+      IF(sn_cfctl%l_prtctl)  CALL prt_ctl(tab2d_1=wndm_ice  , clinfo1=' blk_ice: wndm_ice : ')
       !
    END SUBROUTINE blk_ice_1
@@ -1133,5 +1133,5 @@
       ENDIF
       !
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl(tab3d_1=qla_ice , clinfo1=' blk_ice: qla_ice  : ', tab3d_2=z_qsb   , clinfo2=' z_qsb    : ', kdim=jpl)
          CALL prt_ctl(tab3d_1=z_qlw   , clinfo1=' blk_ice: z_qlw    : ', tab3d_2=dqla_ice, clinfo2=' dqla_ice : ', kdim=jpl)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcmod.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcmod.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcmod.F90	(revision 12210)
@@ -568,5 +568,5 @@
       CALL iom_put( "vtau", vtau )   ! j-wind stress
       !
-      IF(ln_ctl) THEN         ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prtctl) THEN     ! print mean trends (used for debugging)
          CALL prt_ctl(tab2d_1=fr_i             , clinfo1=' fr_i     - : ', mask1=tmask )
          CALL prt_ctl(tab2d_1=(emp-rnf)        , clinfo1=' emp-rnf  - : ', mask1=tmask )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/eosbn2.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/eosbn2.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/eosbn2.F90	(revision 12210)
@@ -297,5 +297,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-insitu  : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-insitu  : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('eos-insitu')
@@ -464,5 +464,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('eos-pot')
@@ -559,5 +559,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=prd, clinfo1=' eos2d: ' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=prd, clinfo1=' eos2d: ' )
       !
       IF( ln_timing )   CALL timing_stop('eos2d')
@@ -671,6 +671,6 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=pab(:,:,:,jp_tem), clinfo1=' rab_3d_t: ', &
-         &                       tab3d_2=pab(:,:,:,jp_sal), clinfo2=' rab_3d_s : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pab(:,:,:,jp_tem), clinfo1=' rab_3d_t: ', &
+         &                                  tab3d_2=pab(:,:,:,jp_sal), clinfo2=' rab_3d_s : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('rab_3d')
@@ -785,6 +785,6 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=pab(:,:,jp_tem), clinfo1=' rab_2d_t: ', &
-         &                       tab2d_2=pab(:,:,jp_sal), clinfo2=' rab_2d_s : ' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=pab(:,:,jp_tem), clinfo1=' rab_2d_t: ', &
+         &                                  tab2d_2=pab(:,:,jp_sal), clinfo2=' rab_2d_s : ' )
       !
       IF( ln_timing )   CALL timing_stop('rab_2d')
@@ -929,5 +929,5 @@
       END DO
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=pn2, clinfo1=' bn2  : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pn2, clinfo1=' bn2  : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('bn2')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traadv.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traadv.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traadv.F90	(revision 12210)
@@ -169,6 +169,6 @@
       ENDIF
       !                                              ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv  - Ta: ', mask1=tmask,               &
-         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv  - Ta: ', mask1=tmask,               &
+         &                                  tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
       IF( ln_timing )   CALL timing_stop( 'tra_adv' )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trabbc.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trabbc.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trabbc.F90	(revision 12210)
@@ -102,5 +102,5 @@
       CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) )
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbc  - Ta: ', mask1=tmask, clinfo3='tra-ta' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbc  - Ta: ', mask1=tmask, clinfo3='tra-ta' )
       !
       IF( ln_timing )   CALL timing_stop('tra_bbc')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trabbl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trabbl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trabbl.F90	(revision 12210)
@@ -119,5 +119,5 @@
          !
          CALL tra_bbl_dif( tsb, tsa, jpts )
-         IF( ln_ctl )  &
+         IF( sn_cfctl%l_prtctl )  &
          CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbl_ldf  - Ta: ', mask1=tmask, &
             &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' )
@@ -132,5 +132,5 @@
          !
          CALL tra_bbl_adv( tsb, tsa, jpts )
-         IF(ln_ctl)   &
+         IF(sn_cfctl%l_prtctl)   &
          CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbl_adv  - Ta: ', mask1=tmask,   &
             &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tradmp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tradmp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tradmp.F90	(revision 12210)
@@ -156,6 +156,6 @@
       ENDIF
       !                           ! Control print
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' dmp  - Ta: ', mask1=tmask,   &
-         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' dmp  - Ta: ', mask1=tmask,   &
+         &                                  tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
       IF( ln_timing )   CALL timing_stop('tra_dmp')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traldf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traldf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traldf.F90	(revision 12210)
@@ -85,6 +85,6 @@
       ENDIF
       !                                        !* print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf  - Ta: ', mask1=tmask,               &
-         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf  - Ta: ', mask1=tmask,               &
+         &                                  tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
       IF( ln_timing )   CALL timing_stop('tra_ldf')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tranxt.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tranxt.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tranxt.F90	(revision 12210)
@@ -181,6 +181,6 @@
       !
       !                        ! control print
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' nxt  - Tn: ', mask1=tmask,   &
-         &                       tab3d_2=tsn(:,:,:,jp_sal), clinfo2=       ' Sn: ', mask2=tmask )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' nxt  - Tn: ', mask1=tmask,   &
+         &                                  tab3d_2=tsn(:,:,:,jp_sal), clinfo2=       ' Sn: ', mask2=tmask )
       !
       IF( ln_timing )   CALL timing_stop('tra_nxt')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traqsr.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traqsr.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/traqsr.F90	(revision 12210)
@@ -300,5 +300,5 @@
       ENDIF
       !                       ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' qsr  - Ta: ', mask1=tmask, clinfo3='tra-ta' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' qsr  - Ta: ', mask1=tmask, clinfo3='tra-ta' )
       !
       IF( ln_timing )   CALL timing_stop('tra_qsr')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trasbc.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trasbc.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trasbc.F90	(revision 12210)
@@ -215,6 +215,6 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' sbc  - Ta: ', mask1=tmask,   &
-         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' sbc  - Ta: ', mask1=tmask,   &
+         &                                  tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
       IF( ln_timing )   CALL timing_stop('tra_sbc')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trazdf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trazdf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trazdf.F90	(revision 12210)
@@ -99,6 +99,6 @@
       ENDIF
       !                                          ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf  - Ta: ', mask1=tmask,               &
-         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf  - Ta: ', mask1=tmask,               &
+         &                                  tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
       IF( ln_timing )   CALL timing_stop('tra_zdf')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRD/trdmxl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRD/trdmxl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRD/trdmxl.F90	(revision 12210)
@@ -371,5 +371,5 @@
          hmxlbn(:,:) = hmxl(:,:)
 
-         IF( ln_ctl ) THEN
+         IF( sn_cfctl%l_prtctl ) THEN
             WRITE(numout,*) '             we reach kt == nit000 + 1 = ', nit000+1
             CALL prt_ctl(tab2d_1=tmlbb   , clinfo1=' tmlbb   -   : ', mask1=tmask)
@@ -380,5 +380,5 @@
       END IF
 
-      IF( ( ln_rstart ) .AND. ( kt == nit000 ) .AND. ( ln_ctl ) ) THEN
+      IF( ( ln_rstart ) .AND. ( kt == nit000 ) .AND. sn_cfctl%l_prtctl ) THEN
          IF( ln_trdmxl_instant ) THEN
             WRITE(numout,*) '             restart from kt == nit000 = ', nit000
@@ -548,5 +548,5 @@
          hmxlbn         (:,:)   = hmxl    (:,:)
          
-         IF( ln_ctl ) THEN
+         IF( sn_cfctl%l_prtctl ) THEN
             IF( ln_trdmxl_instant ) THEN
                CALL prt_ctl(tab2d_1=tmlbb   , clinfo1=' tmlbb   -   : ', mask1=tmask)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfddm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfddm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfddm.F90	(revision 12210)
@@ -163,5 +163,5 @@
       !                                                   ! ===============
       !
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl(tab3d_1=avt , clinfo1=' ddm  - t: ', tab3d_2=avs , clinfo2=' s: ', kdim=jpk)
       ENDIF
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfdrg.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfdrg.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfdrg.F90	(revision 12210)
@@ -139,5 +139,5 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=pCdU, clinfo1=' Cd*U ')
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=pCdU, clinfo1=' Cd*U ')
       !
    END SUBROUTINE zdf_drg
@@ -213,6 +213,6 @@
       ENDIF
       !                                          ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=pua, clinfo1=' bfr  - Ua: ', mask1=umask,               &
-         &                       tab3d_2=pva, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pua, clinfo1=' bfr  - Ua: ', mask1=umask,               &
+         &                                  tab3d_2=pva, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
       !
    END SUBROUTINE zdf_drg_exp
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfgls.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfgls.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfgls.F90	(revision 12210)
@@ -824,5 +824,5 @@
       p_avt(:,:,1) = 0._wp
       !
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl( tab3d_1=en   , clinfo1=' gls  - e: ', tab3d_2=p_avt, clinfo2=' t: ', kdim=jpk)
          CALL prt_ctl( tab3d_1=p_avm, clinfo1=' gls  - m: ', kdim=jpk )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfiwm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfiwm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfiwm.F90	(revision 12210)
@@ -383,5 +383,5 @@
       CALL iom_put( "emix_iwm", zemx_iwm )
       
-      IF(ln_ctl)   CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', kdim=jpk)
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', kdim=jpk)
       !
    END SUBROUTINE zdf_iwm
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfmxl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfmxl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfmxl.F90	(revision 12210)
@@ -138,5 +138,5 @@
       ENDIF
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' )
       !
    END SUBROUTINE zdf_mxl
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfosm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfosm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfosm.F90	(revision 12210)
@@ -1657,5 +1657,5 @@
       ENDIF
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' osm  - Ta: ', mask1=tmask,   &
          &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdftke.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdftke.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdftke.F90	(revision 12210)
@@ -623,5 +623,5 @@
       ENDIF
       !
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          CALL prt_ctl( tab3d_1=en   , clinfo1=' tke  - e: ', tab3d_2=p_avt, clinfo2=' t: ', kdim=jpk)
          CALL prt_ctl( tab3d_1=p_avm, clinfo1=' tke  - m: ', kdim=jpk )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/nemogcm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/nemogcm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/nemogcm.F90	(revision 12210)
@@ -265,5 +265,5 @@
       INTEGER ::   ios, ilocal_comm   ! local integers
       !!
-      NAMELIST/namctl/ ln_ctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   &
+      NAMELIST/namctl/ sn_cfctl,  nn_print, nn_ictls, nn_ictle,             &
          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             &
          &             ln_timing, ln_diacfl
@@ -316,5 +316,5 @@
       !
       !                             !--------------------!
-      !                             ! Open listing units !  -> need ln_ctl from namctl to define lwp
+      !                             ! Open listing units !  -> need sn_cfctl from namctl to define lwp
       !                             !--------------------!
       !
@@ -324,5 +324,23 @@
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namctl in configuration namelist' )
       !
-      lwp = (narea == 1) .OR. ln_ctl    ! control of all listing output print
+      ! finalize the definition of namctl variables
+      IF( sn_cfctl%l_allon ) THEN
+         ! Turn on all options.
+         CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. )
+         ! Ensure all processors are active
+         sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1
+      ELSEIF( sn_cfctl%l_config ) THEN
+         ! Activate finer control of report outputs
+         ! optionally switch off output from selected areas (note this only
+         ! applies to output which does not involve global communications)
+         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
+           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
+           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
+      ELSE
+         ! turn off all options.
+         CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. )
+      ENDIF
+      !
+      lwp = (narea == 1) .OR. sn_cfctl%l_oceout    ! control of all listing output print
       !
       IF(lwp) THEN                      ! open listing units
@@ -356,17 +374,4 @@
       ENDIF
       !
-      ! finalize the definition of namctl variables
-      IF( sn_cfctl%l_config ) THEN
-         ! Activate finer control of report outputs
-         ! optionally switch off output from selected areas (note this only
-         ! applies to output which does not involve global communications)
-         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
-           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
-           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
-      ELSE
-         ! Use ln_ctl to turn on or off all options.
-         CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )
-      ENDIF
-      !
       IF(lwm) WRITE( numond, namctl )
       !
@@ -412,21 +417,22 @@
                            CALL     dom_init("OPA") ! Domain
       IF( ln_crs       )   CALL     crs_init        ! coarsened grid: domain initialization 
-      IF( ln_ctl       )   CALL prt_ctl_init        ! Print control
+      IF( sn_cfctl%l_prtctl )   &
+         &                 CALL prt_ctl_init        ! Print control
       
-      CALL diurnal_sst_bulk_init                ! diurnal sst
+                           CALL diurnal_sst_bulk_init       ! diurnal sst
       IF( ln_diurnal   )   CALL diurnal_sst_coolskin_init   ! cool skin   
       !                            
-      IF( ln_diurnal_only ) THEN                   ! diurnal only: a subset of the initialisation routines
-         CALL  istate_init                            ! ocean initial state (Dynamics and tracers)
-         CALL     sbc_init                            ! Forcings : surface module
-         CALL tra_qsr_init                            ! penetrative solar radiation qsr
-         IF( ln_diaobs ) THEN                         ! Observation & model comparison
-            CALL dia_obs_init                            ! Initialize observational data
-            CALL dia_obs( nit000 - 1 )                   ! Observation operator for restart
-         ENDIF     
-         IF( lk_asminc )   CALL asm_inc_init          ! Assimilation increments
-         !
-         RETURN                                       ! end of initialization
-      ENDIF
+                           IF( ln_diurnal_only ) THEN                    ! diurnal only: a subset of the initialisation routines
+                              CALL  istate_init                          ! ocean initial state (Dynamics and tracers)
+                              CALL     sbc_init                          ! Forcings : surface module
+                              CALL tra_qsr_init                          ! penetrative solar radiation qsr
+                              IF( ln_diaobs ) THEN                       ! Observation & model comparison
+                                 CALL dia_obs_init                       ! Initialize observational data
+                                 CALL dia_obs( nit000 - 1 )              ! Observation operator for restart
+                              ENDIF     
+                              IF( lk_asminc )   CALL asm_inc_init        ! Assimilation increments
+                              !
+                              RETURN                                     ! end of diurnal_only initialization
+                           ENDIF
       !
       
@@ -516,5 +522,6 @@
          WRITE(numout,*) '~~~~~~~~'
          WRITE(numout,*) '   Namelist namctl'
-         WRITE(numout,*) '      run control (for debugging)     ln_ctl     = ', ln_ctl
+         WRITE(numout,*) '                              sn_cfctl%l_glochk  = ', sn_cfctl%l_glochk
+         WRITE(numout,*) '                              sn_cfctl%l_allon   = ', sn_cfctl%l_allon
          WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config
          WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat
@@ -522,6 +529,7 @@
          WRITE(numout,*) '                              sn_cfctl%l_oceout  = ', sn_cfctl%l_oceout
          WRITE(numout,*) '                              sn_cfctl%l_layout  = ', sn_cfctl%l_layout
-         WRITE(numout,*) '                              sn_cfctl%l_mppout  = ', sn_cfctl%l_mppout
-         WRITE(numout,*) '                              sn_cfctl%l_mpptop  = ', sn_cfctl%l_mpptop
+         WRITE(numout,*) '                              sn_cfctl%l_prtctl  = ', sn_cfctl%l_prtctl
+         WRITE(numout,*) '                              sn_cfctl%l_prttrc  = ', sn_cfctl%l_prttrc
+         WRITE(numout,*) '                              sn_cfctl%l_oasout  = ', sn_cfctl%l_oasout
          WRITE(numout,*) '                              sn_cfctl%procmin   = ', sn_cfctl%procmin  
          WRITE(numout,*) '                              sn_cfctl%procmax   = ', sn_cfctl%procmax  
@@ -561,5 +569,5 @@
       !                             ! Parameter control
       !
-      IF( ln_ctl ) THEN                 ! sub-domain area indices for the control prints
+      IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN              ! sub-domain area indices for the control prints
          IF( lk_mpp .AND. jpnij > 1 ) THEN
             isplt = jpni   ;   jsplt = jpnj   ;   ijsplt = jpni*jpnj   ! the domain is forced to the real split domain
@@ -687,6 +695,7 @@
       sn_cfctl%l_oceout  = setto
       sn_cfctl%l_layout  = setto
-      sn_cfctl%l_mppout  = setto
-      sn_cfctl%l_mpptop  = setto
+      sn_cfctl%l_prtctl  = setto
+      sn_cfctl%l_prttrc  = setto
+      sn_cfctl%l_oasout  = setto
    END SUBROUTINE nemo_set_cfctl
 
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/stpctl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/stpctl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/stpctl.F90	(revision 12210)
@@ -72,5 +72,5 @@
       !
       ll_wrtstp  = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend )
-      ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR. sn_cfctl%l_runstat )
+      ll_colruns = ll_wrtstp .AND. ( sn_cfctl%l_runstat )
       ll_wrtruns = ll_colruns .AND. lwm
       IF( kt == nit000 .AND. lwp ) THEN
@@ -82,5 +82,5 @@
          !                                ! open run.stat file(s) at start whatever
          !                                ! the value of sn_cfctl%ptimincr
-         IF( lwm .AND. ( ln_ctl .OR. sn_cfctl%l_runstat ) ) THEN
+         IF( lwm .AND. ( sn_cfctl%l_runstat ) ) THEN
             CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
             clname = 'run.stat.nc'
@@ -147,5 +147,5 @@
       END IF
       !                                   !==  error handling  ==!
-      IF( ( ln_ctl .OR. lsomeoce ) .AND. (   &             ! have use mpp_max (because ln_ctl=.T.) or contains some ocean points
+      IF( ( sn_cfctl%l_glochk .OR. lsomeoce ) .AND. (   &  ! domain contains some ocean points, check for sensible ranges
          &  zmax(1) >   20._wp .OR.   &                    ! too large sea surface height ( > 20 m )
          &  zmax(2) >   10._wp .OR.   &                    ! too large velocity ( > 10 m/s)
@@ -154,5 +154,6 @@
          &  zmax(4) <    0._wp .OR.   &                    ! too large sea surface salinity (keep this line for sea-ice)
          &  ISNAN( zmax(1) + zmax(2) + zmax(3) ) ) ) THEN   ! NaN encounter in the tests
-         IF( lk_mpp .AND. ln_ctl ) THEN
+         IF( lk_mpp .AND. sn_cfctl%l_glochk ) THEN
+            ! have use mpp_max (because sn_cfctl%l_glochk=.T. and distributed)
             CALL mpp_maxloc( 'stpctl', ABS(sshn)        , ssmask(:,:)  , zzz, ih  )
             CALL mpp_maxloc( 'stpctl', ABS(un)          , umask (:,:,:), zzz, iu  )
@@ -160,4 +161,5 @@
             CALL mpp_maxloc( 'stpctl', tsn(:,:,:,jp_sal), tmask (:,:,:), zzz, is2 )
          ELSE
+            ! find local min and max locations
             ih(:)  = MAXLOC( ABS( sshn(:,:)   )                              ) + (/ nimpp - 1, njmpp - 1    /)
             iu(:)  = MAXLOC( ABS( un  (:,:,:) )                              ) + (/ nimpp - 1, njmpp - 1, 0 /)
@@ -175,5 +177,5 @@
          CALL dia_wri_state( 'output.abort' )     ! create an output.abort file
          
-         IF( .NOT. ln_ctl ) THEN
+         IF( .NOT. sn_cfctl%l_glochk ) THEN
             WRITE(ctmp8,*) 'E R R O R message from sub-domain: ', narea
             CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp8, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ctmp6 )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OFF/dtadyn.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OFF/dtadyn.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OFF/dtadyn.F90	(revision 12210)
@@ -176,5 +176,5 @@
       CALL eos( tsn, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop
       !
-      IF(ln_ctl) THEN                  ! print control
+      IF(sn_cfctl%l_prtctl) THEN                 ! print control
          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' tn      - : ', mask1=tmask,  kdim=jpk   )
          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_sal), clinfo1=' sn      - : ', mask1=tmask,  kdim=jpk   )
@@ -442,5 +442,5 @@
       CALL eos    ( tsn, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop
 
-      IF(ln_ctl) THEN                  ! print control
+      IF(sn_cfctl%l_prtctl) THEN                     ! print control
          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' tn      - : ', mask1=tmask,  kdim=jpk   )
          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_sal), clinfo1=' sn      - : ', mask1=tmask,  kdim=jpk   )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OFF/nemogcm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OFF/nemogcm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OFF/nemogcm.F90	(revision 12210)
@@ -164,5 +164,5 @@
       INTEGER ::   ios, ilocal_comm   ! local integers
       !!
-      NAMELIST/namctl/ ln_ctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   &
+      NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle,              &
          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             &
          &             ln_timing, ln_diacfl
@@ -201,5 +201,5 @@
       !
       !                             !--------------------!
-      !                             ! Open listing units !  -> need ln_ctl from namctl to define lwp
+      !                             ! Open listing units !  -> need sn_cfctl from namctl to define lwp
       !                             !--------------------!
       !
@@ -209,5 +209,23 @@
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namctl in configuration namelist' )
       !
-      lwp = (narea == 1) .OR. ln_ctl    ! control of all listing output print
+      ! finalize the definition of namctl variables
+      IF( sn_cfctl%l_allon ) THEN
+         ! Turn on all options.
+         CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. )
+         ! Ensure all processors are active
+         sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1
+      ELSEIF( sn_cfctl%l_config ) THEN
+         ! Activate finer control of report outputs
+         ! optionally switch off output from selected areas (note this only
+         ! applies to output which does not involve global communications)
+         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
+           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
+           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
+      ELSE
+         ! turn off all options.
+         CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. )
+      ENDIF
+      !
+      lwp = (narea == 1) .OR. sn_cfctl%l_oceout    ! control of all listing output print
       !
       IF(lwp) THEN                            ! open listing units
@@ -241,17 +259,4 @@
       ENDIF
       !
-      ! finalize the definition of namctl variables
-      IF( sn_cfctl%l_config ) THEN
-         ! Activate finer control of report outputs
-         ! optionally switch off output from selected areas (note this only
-         ! applies to output which does not involve global communications)
-         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
-           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
-           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
-      ELSE
-         ! Use ln_ctl to turn on or off all options.
-         CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )
-      ENDIF
-      !
       IF(lwm) WRITE( numond, namctl )
       !
@@ -297,5 +302,6 @@
       IF( lk_c1d       )   CALL     c1d_init        ! 1D column configuration
                            CALL     dom_init("OPA") ! Domain
-      IF( ln_ctl       )   CALL prt_ctl_init        ! Print control
+      IF( sn_cfctl%l_prtctl )   &
+         &                 CALL prt_ctl_init        ! Print control
 
                            CALL  istate_init    ! ocean initial state (Dynamics and tracers)
@@ -336,5 +342,5 @@
       !! ** Purpose :   control print setting
       !!
-      !! ** Method  : - print namctl information and check some consistencies
+      !! ** Method  : - print namctl and namcfg information and check some consistencies
       !!----------------------------------------------------------------------
       !
@@ -344,5 +350,6 @@
          WRITE(numout,*) '~~~~~~~~'
          WRITE(numout,*) '   Namelist namctl'
-         WRITE(numout,*) '      run control (for debugging)     ln_ctl     = ', ln_ctl
+         WRITE(numout,*) '                              sn_cfctl%l_glochk  = ', sn_cfctl%l_glochk
+         WRITE(numout,*) '                              sn_cfctl%l_allon   = ', sn_cfctl%l_allon
          WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config
          WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat
@@ -350,6 +357,7 @@
          WRITE(numout,*) '                              sn_cfctl%l_oceout  = ', sn_cfctl%l_oceout
          WRITE(numout,*) '                              sn_cfctl%l_layout  = ', sn_cfctl%l_layout
-         WRITE(numout,*) '                              sn_cfctl%l_mppout  = ', sn_cfctl%l_mppout
-         WRITE(numout,*) '                              sn_cfctl%l_mpptop  = ', sn_cfctl%l_mpptop
+         WRITE(numout,*) '                              sn_cfctl%l_prtctl  = ', sn_cfctl%l_prtctl
+         WRITE(numout,*) '                              sn_cfctl%l_prttrc  = ', sn_cfctl%l_prttrc
+         WRITE(numout,*) '                              sn_cfctl%l_oasout  = ', sn_cfctl%l_oasout
          WRITE(numout,*) '                              sn_cfctl%procmin   = ', sn_cfctl%procmin  
          WRITE(numout,*) '                              sn_cfctl%procmax   = ', sn_cfctl%procmax  
@@ -389,5 +397,5 @@
       !                             ! Parameter control
       !
-      IF( ln_ctl ) THEN                 ! sub-domain area indices for the control prints
+      IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN              ! sub-domain area indices for the control prints
          IF( lk_mpp .AND. jpnij > 1 ) THEN
             isplt = jpni   ;   jsplt = jpnj   ;   ijsplt = jpni*jpnj   ! the domain is forced to the real split domain
@@ -501,6 +509,7 @@
       sn_cfctl%l_oceout  = setto
       sn_cfctl%l_layout  = setto
-      sn_cfctl%l_mppout  = setto
-      sn_cfctl%l_mpptop  = setto
+      sn_cfctl%l_prtctl  = setto
+      sn_cfctl%l_prttrc  = setto
+      sn_cfctl%l_oasout  = setto
    END SUBROUTINE nemo_set_cfctl
 
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAO/nemogcm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAO/nemogcm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAO/nemogcm.F90	(revision 12210)
@@ -91,5 +91,5 @@
       INTEGER ::   ios, ilocal_comm   ! local integer
       !
-      NAMELIST/namctl/ ln_ctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   &
+      NAMELIST/namctl/ sn_cfctl,  nn_print, nn_ictls, nn_ictle,             &
          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             &
          &             ln_timing, ln_diacfl
@@ -142,5 +142,5 @@
       !
       !                             !--------------------!
-      !                             ! Open listing units !  -> need ln_ctl from namctl to define lwp
+      !                             ! Open listing units !  -> need sn_cfctl from namctl to define lwp
       !                             !--------------------!
       !
@@ -150,5 +150,23 @@
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namctl in configuration namelist' )
       !
-      lwp = (narea == 1) .OR. ln_ctl    ! control of all listing output print
+      ! finalize the definition of namctl variables
+      IF( sn_cfctl%l_allon ) THEN
+         ! Turn on all options.
+         CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. )
+         ! Ensure all processors are active
+         sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1
+      ELSEIF( sn_cfctl%l_config ) THEN
+         ! Activate finer control of report outputs
+         ! optionally switch off output from selected areas (note this only
+         ! applies to output which does not involve global communications)
+         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
+           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
+           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
+      ELSE
+         ! turn off all options.
+         CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. )
+      ENDIF
+      !
+      lwp = (narea == 1) .OR. sn_cfctl%l_oceout    ! control of all listing output print
       !
       IF(lwp) THEN                      ! open listing units
@@ -182,17 +200,4 @@
       ENDIF
       !
-      ! finalize the definition of namctl variables
-      IF( sn_cfctl%l_config ) THEN
-         ! Activate finer control of report outputs
-         ! optionally switch off output from selected areas (note this only
-         ! applies to output which does not involve global communications)
-         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
-           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
-           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
-      ELSE
-         ! Use ln_ctl to turn on or off all options.
-         CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )
-      ENDIF
-      !
       IF(lwm) WRITE( numond, namctl )
       !
@@ -237,7 +242,8 @@
 
 
-      IF( ln_ctl       )   CALL prt_ctl_init    ! Print control
-
-                           CALL istate_init     ! ocean initial state (Dynamics and tracers)
+      IF( sn_cfctl%l_prtctl )   &
+         &                 CALL prt_ctl_init       ! Print control
+
+                           CALL istate_init        ! ocean initial state (Dynamics and tracers)
    END SUBROUTINE nemo_init
 
@@ -249,5 +255,5 @@
       !! ** Purpose :   control print setting
       !!
-      !! ** Method  : - print namctl information and check some consistencies
+      !! ** Method  : - print namctl and namcfg information and check some consistencies
       !!----------------------------------------------------------------------
       !
@@ -257,5 +263,6 @@
          WRITE(numout,*) '~~~~~~~~'
          WRITE(numout,*) '   Namelist namctl'
-         WRITE(numout,*) '      run control (for debugging)     ln_ctl     = ', ln_ctl
+         WRITE(numout,*) '                              sn_cfctl%l_glochk  = ', sn_cfctl%l_glochk
+         WRITE(numout,*) '                              sn_cfctl%l_allon   = ', sn_cfctl%l_allon
          WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config
          WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat
@@ -263,6 +270,7 @@
          WRITE(numout,*) '                              sn_cfctl%l_oceout  = ', sn_cfctl%l_oceout
          WRITE(numout,*) '                              sn_cfctl%l_layout  = ', sn_cfctl%l_layout
-         WRITE(numout,*) '                              sn_cfctl%l_mppout  = ', sn_cfctl%l_mppout
-         WRITE(numout,*) '                              sn_cfctl%l_mpptop  = ', sn_cfctl%l_mpptop
+         WRITE(numout,*) '                              sn_cfctl%l_prtctl  = ', sn_cfctl%l_prtctl
+         WRITE(numout,*) '                              sn_cfctl%l_prttrc  = ', sn_cfctl%l_prttrc
+         WRITE(numout,*) '                              sn_cfctl%l_oasout  = ', sn_cfctl%l_oasout
          WRITE(numout,*) '                              sn_cfctl%procmin   = ', sn_cfctl%procmin  
          WRITE(numout,*) '                              sn_cfctl%procmax   = ', sn_cfctl%procmax  
@@ -302,5 +310,5 @@
       !                             ! Parameter control
       !
-      IF( ln_ctl ) THEN                 ! sub-domain area indices for the control prints
+      IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN              ! sub-domain area indices for the control prints
          IF( lk_mpp .AND. jpnij > 1 ) THEN
             isplt = jpni   ;   jsplt = jpnj   ;   ijsplt = jpni*jpnj   ! the domain is forced to the real split domain
@@ -418,6 +426,7 @@
       sn_cfctl%l_oceout  = setto
       sn_cfctl%l_layout  = setto
-      sn_cfctl%l_mppout  = setto
-      sn_cfctl%l_mpptop  = setto
+      sn_cfctl%l_prtctl  = setto
+      sn_cfctl%l_prttrc  = setto
+      sn_cfctl%l_oasout  = setto
    END SUBROUTINE nemo_set_cfctl
 
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/daymod.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/daymod.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/daymod.F90	(revision 12210)
@@ -275,5 +275,5 @@
       IF( nsec_week > 7*nsecd )   nsec_week = ndt05     ! New week
 
-      IF(ln_ctl) THEN
+      IF(sn_cfctl%l_prtctl) THEN
          WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear
          CALL prt_ctl_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/nemogcm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/nemogcm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/nemogcm.F90	(revision 12210)
@@ -185,5 +185,5 @@
       INTEGER ::   ios, ilocal_comm   ! local integers
       !!
-      NAMELIST/namctl/ ln_ctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   &
+      NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle,              &
          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             &
          &             ln_timing, ln_diacfl
@@ -246,5 +246,5 @@
       !
       !                             !--------------------!
-      !                             ! Open listing units !  -> need ln_ctl from namctl to define lwp
+      !                             ! Open listing units !  -> need sn_cfctl from namctl to define lwp
       !                             !--------------------!
       !
@@ -254,5 +254,23 @@
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namctl in configuration namelist' )
       !
-      lwp = (narea == 1) .OR. ln_ctl    ! control of all listing output print
+      ! finalize the definition of namctl variables
+      IF( sn_cfctl%l_allon ) THEN
+         ! Turn on all options.
+         CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. )
+         ! Ensure all processors are active
+         sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1
+      ELSEIF( sn_cfctl%l_config ) THEN
+         ! Activate finer control of report outputs
+         ! optionally switch off output from selected areas (note this only
+         ! applies to output which does not involve global communications)
+         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
+           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
+           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
+      ELSE
+         ! turn off all options.
+         CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. )
+      ENDIF
+      !
+      lwp = (narea == 1) .OR. sn_cfctl%l_oceout    ! control of all listing output print
       !
       IF(lwp) THEN                      ! open listing units
@@ -289,17 +307,4 @@
          !
       ENDIF
-     !
-      ! finalize the definition of namctl variables
-      IF( sn_cfctl%l_config ) THEN
-         ! Activate finer control of report outputs
-         ! optionally switch off output from selected areas (note this only
-         ! applies to output which does not involve global communications)
-         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. &
-           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    &
-           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
-      ELSE
-         ! Use ln_ctl to turn on or off all options.
-         CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )
-      ENDIF
       !
       IF(lwm) WRITE( numond, namctl )
@@ -343,5 +348,6 @@
                            CALL eos_init        ! Equation of seawater
                            CALL dom_init('SAS') ! Domain
-      IF( ln_ctl      )    CALL prt_ctl_init    ! Print control
+      IF( sn_cfctl%l_prtctl )   &
+         &                 CALL prt_ctl_init        ! Print control
       
                            CALL day_init        ! model calendar (using both namelist and restart infos)
@@ -371,5 +377,5 @@
       !! ** Purpose :   control print setting
       !!
-      !! ** Method  : - print namctl information and check some consistencies
+      !! ** Method  : - print namctl and namcfg information and check some consistencies
       !!----------------------------------------------------------------------
       !
@@ -379,5 +385,6 @@
          WRITE(numout,*) '~~~~~~~~'
          WRITE(numout,*) '   Namelist namctl'
-         WRITE(numout,*) '      run control (for debugging)     ln_ctl     = ', ln_ctl
+         WRITE(numout,*) '                              sn_cfctl%l_glochk  = ', sn_cfctl%l_glochk
+         WRITE(numout,*) '                              sn_cfctl%l_allon   = ', sn_cfctl%l_allon
          WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config
          WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat
@@ -385,6 +392,7 @@
          WRITE(numout,*) '                              sn_cfctl%l_oceout  = ', sn_cfctl%l_oceout
          WRITE(numout,*) '                              sn_cfctl%l_layout  = ', sn_cfctl%l_layout
-         WRITE(numout,*) '                              sn_cfctl%l_mppout  = ', sn_cfctl%l_mppout
-         WRITE(numout,*) '                              sn_cfctl%l_mpptop  = ', sn_cfctl%l_mpptop
+         WRITE(numout,*) '                              sn_cfctl%l_prtctl  = ', sn_cfctl%l_prtctl
+         WRITE(numout,*) '                              sn_cfctl%l_prttrc  = ', sn_cfctl%l_prttrc
+         WRITE(numout,*) '                              sn_cfctl%l_oasout  = ', sn_cfctl%l_oasout
          WRITE(numout,*) '                              sn_cfctl%procmin   = ', sn_cfctl%procmin  
          WRITE(numout,*) '                              sn_cfctl%procmax   = ', sn_cfctl%procmax  
@@ -424,5 +432,5 @@
       !                             ! Parameter control
       !
-      IF( ln_ctl ) THEN                 ! sub-domain area indices for the control prints
+      IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN              ! sub-domain area indices for the control prints
          IF( lk_mpp .AND. jpnij > 1 ) THEN
             isplt = jpni   ;   jsplt = jpnj   ;   ijsplt = jpni*jpnj   ! the domain is forced to the real split domain
@@ -544,6 +552,7 @@
       sn_cfctl%l_oceout  = setto
       sn_cfctl%l_layout  = setto
-      sn_cfctl%l_mppout  = setto
-      sn_cfctl%l_mpptop  = setto
+      sn_cfctl%l_prtctl  = setto
+      sn_cfctl%l_prttrc  = setto
+      sn_cfctl%l_oasout  = setto
    END SUBROUTINE nemo_set_cfctl
 
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/sbcssm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/sbcssm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/sbcssm.F90	(revision 12210)
@@ -131,5 +131,5 @@
       vb (:,:,1) = ssv_m(:,:)
  
-      IF(ln_ctl) THEN                  ! print control
+      IF(sn_cfctl%l_prtctl) THEN            ! print control
          CALL prt_ctl(tab2d_1=sst_m, clinfo1=' sst_m   - : ', mask1=tmask   )
          CALL prt_ctl(tab2d_1=sss_m, clinfo1=' sss_m   - : ', mask1=tmask   )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/stpctl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/stpctl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/SAS/stpctl.F90	(revision 12210)
@@ -63,5 +63,5 @@
       !
       ll_wrtstp  = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend )
-      ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR. sn_cfctl%l_runstat )
+      ll_colruns = ll_wrtstp .AND. ( sn_cfctl%l_runstat )
       ll_wrtruns = ll_colruns .AND. lwm
       IF( kt == nit000 .AND. lwp ) THEN
@@ -73,5 +73,5 @@
          !                                ! open run.stat file(s) at start whatever
          !                                ! the value of sn_cfctl%ptimincr
-         IF( lwm .AND. ( ln_ctl .OR. sn_cfctl%l_runstat ) ) THEN
+         IF( lwm .AND. ( sn_cfctl%l_runstat ) ) THEN
             CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
             clname = 'run.stat.nc'
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zbio.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zbio.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zbio.F90	(revision 12210)
@@ -367,5 +367,5 @@
       ENDIF
 
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('bio')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zexp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zexp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zexp.F90	(revision 12210)
@@ -146,5 +146,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('exp')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zopt.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zopt.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zopt.F90	(revision 12210)
@@ -133,5 +133,5 @@
 
 
-      IF(ln_ctl) THEN      ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging)
          WRITE(charout, FMT="('opt')")
          CALL prt_ctl_trc_info( charout )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zsed.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zsed.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P2Z/p2zsed.F90	(revision 12210)
@@ -107,5 +107,5 @@
       !
 
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('sed')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zagg.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zagg.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zagg.F90	(revision 12210)
@@ -173,5 +173,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('agg')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zbio.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zbio.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zbio.F90	(revision 12210)
@@ -106,5 +106,5 @@
       & CALL p4z_ligand( kt, knt )
       !                                                             !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('bio ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zfechem.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zfechem.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zfechem.F90	(revision 12210)
@@ -220,5 +220,5 @@
       ENDIF
 
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('fechem')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zflx.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zflx.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zflx.F90	(revision 12210)
@@ -179,5 +179,5 @@
       t_atm_co2_flx     =  atcco2      ! Total atmospheric pCO2
  
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('flx ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zligand.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zligand.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zligand.F90	(revision 12210)
@@ -94,5 +94,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('ligand1')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zlys.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zlys.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zlys.F90	(revision 12210)
@@ -129,5 +129,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
         WRITE(charout, FMT="('lys ')")
         CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmeso.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmeso.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmeso.F90	(revision 12210)
@@ -255,5 +255,5 @@
       IF (ln_ligand)  DEALLOCATE( zz2ligprod )
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
         WRITE(charout, FMT="('meso')")
         CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmicro.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmicro.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmicro.F90	(revision 12210)
@@ -207,5 +207,5 @@
       IF (ln_ligand)  DEALLOCATE( zzligprod )
       !
-      IF(ln_ctl) THEN      ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging)
          WRITE(charout, FMT="('micro')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmort.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmort.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zmort.F90	(revision 12210)
@@ -118,5 +118,5 @@
       END DO
       !
-       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('nano')")
          CALL prt_ctl_trc_info(charout)
@@ -193,5 +193,5 @@
       END DO
       !
-      IF(ln_ctl) THEN      ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging)
          WRITE(charout, FMT="('diat')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zpoc.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zpoc.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zpoc.F90	(revision 12210)
@@ -248,5 +248,5 @@
       ENDIF
 
-     IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+     IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
         WRITE(charout, FMT="('poc1')")
         CALL prt_ctl_trc_info(charout)
@@ -460,5 +460,5 @@
      ENDIF
 
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('poc2')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zprod.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zprod.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zprod.F90	(revision 12210)
@@ -456,5 +456,5 @@
      ENDIF
 
-     IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+     IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('prod')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zrem.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zrem.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zrem.F90	(revision 12210)
@@ -207,5 +207,5 @@
       END DO
 
-       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('rem1')")
          CALL prt_ctl_trc_info(charout)
@@ -233,5 +233,5 @@
       END DO
 
-       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('rem2')")
          CALL prt_ctl_trc_info(charout)
@@ -268,5 +268,5 @@
       END DO
 
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('rem3')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zsed.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zsed.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zsed.F90	(revision 12210)
@@ -348,5 +348,5 @@
       ENDIF
       !
-      IF(ln_ctl) THEN  ! print mean trends (USEd for debugging)
+      IF(sn_cfctl%l_prttrc) THEN  ! print mean trends (USEd for debugging)
          WRITE(charout, fmt="('sed ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zsink.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zsink.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p4zsink.F90	(revision 12210)
@@ -172,5 +172,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('sink')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmeso.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmeso.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmeso.F90	(revision 12210)
@@ -376,5 +376,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
         WRITE(charout, FMT="('meso')")
         CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmicro.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmicro.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmicro.F90	(revision 12210)
@@ -318,5 +318,5 @@
       ENDIF
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('micro')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmort.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmort.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zmort.F90	(revision 12210)
@@ -119,5 +119,5 @@
       END DO
       !
-       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('nano')")
          CALL prt_ctl_trc_info(charout)
@@ -180,5 +180,5 @@
       END DO
       !
-       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+       IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('pico')")
          CALL prt_ctl_trc_info(charout)
@@ -258,5 +258,5 @@
       END DO
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('diat')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zprod.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zprod.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/P4Z/p5zprod.F90	(revision 12210)
@@ -554,5 +554,5 @@
      ENDIF
 
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('prod')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/SED/trcdmp_sed.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/SED/trcdmp_sed.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/PISCES/SED/trcdmp_sed.F90	(revision 12210)
@@ -106,5 +106,5 @@
       !
       !                                          ! print mean trends (used for debugging)
-      IF( ln_ctl ) THEN
+      IF( sn_cfctl%l_prttrc ) THEN
          WRITE(charout, FMT="('dmp ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcadv.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcadv.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcadv.F90	(revision 12210)
@@ -135,5 +135,5 @@
       END SELECT
       !                  
-      IF( ln_ctl ) THEN                         !== print mean trends (used for debugging)
+      IF( sn_cfctl%l_prttrc ) THEN        !== print mean trends (used for debugging)
          WRITE(charout, FMT="('adv ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcbbl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcbbl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcbbl.F90	(revision 12210)
@@ -67,5 +67,5 @@
          !
          CALL tra_bbl_dif( trb, tra, jptra )  
-         IF( ln_ctl )   THEN
+         IF( sn_cfctl%l_prttrc )   THEN
             WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_trc_info(charout)
             CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
@@ -78,5 +78,5 @@
          !
          CALL tra_bbl_adv( trb, tra, jptra )  
-         IF( ln_ctl )   THEN
+         IF( sn_cfctl%l_prttrc )   THEN
             WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_trc_info(charout)
             CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcdmp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcdmp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcdmp.F90	(revision 12210)
@@ -156,5 +156,5 @@
       IF( l_trdtrc )  DEALLOCATE( ztrtrd )
       !                                          ! print mean trends (used for debugging)
-      IF( ln_ctl ) THEN
+      IF( sn_cfctl%l_prttrc ) THEN
          WRITE(charout, FMT="('dmp ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcldf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcldf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcldf.F90	(revision 12210)
@@ -110,5 +110,5 @@
       ENDIF
       !                
-      IF( ln_ctl ) THEN                        ! print mean trends (used for debugging)
+      IF( sn_cfctl%l_prttrc ) THEN ! print mean trends (used for debugging)
          WRITE(charout, FMT="('ldf ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcnxt.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcnxt.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcnxt.F90	(revision 12210)
@@ -189,5 +189,5 @@
       IF( l_trdtrc ) DEALLOCATE( ztrdt ) 
       !
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('nxt')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcrad.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcrad.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcrad.F90	(revision 12210)
@@ -65,5 +65,5 @@
       IF( ln_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1               )  !  MY_TRC model
       !
-      IF(ln_ctl) THEN      ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging)
          WRITE(charout, FMT="('rad')")
          CALL prt_ctl_trc_info( charout )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcsbc.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcsbc.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trcsbc.F90	(revision 12210)
@@ -191,5 +191,5 @@
       ENDIF
       !
-      IF( ln_ctl )   THEN
+      IF( sn_cfctl%l_prttrc )   THEN
          WRITE(charout, FMT="('sbc ')") ;  CALL prt_ctl_trc_info(charout)
                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trczdf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trczdf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/TRP/trczdf.F90	(revision 12210)
@@ -65,5 +65,5 @@
       ENDIF
       !                                          ! print mean trends (used for debugging)
-      IF( ln_ctl )   THEN
+      IF( sn_cfctl%l_prttrc )   THEN
          WRITE(charout, FMT="('zdf ')")
          CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/prtctl_trc.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/prtctl_trc.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/prtctl_trc.F90	(revision 12210)
@@ -35,5 +35,5 @@
    SUBROUTINE prt_ctl_trc( tab4d, mask, clinfo, ovlap, kdim, clinfo2 )
       !!----------------------------------------------------------------------
-      !!                     ***  ROUTINE prt_ctl  ***
+      !!                     ***  ROUTINE prt_ctl_trc  ***
       !!
       !! ** Purpose : - print sum control 3D arrays over the same area 
@@ -41,5 +41,5 @@
       !!                debugging a new parametrization in mono or mpp. 
       !!
-      !! ** Method  : 2 possibilities exist when setting the ln_ctl parameter to
+      !! ** Method  : 2 possibilities exist when setting the sn_cfctl%prttrc parameter to
       !!                .true. in the ocean namelist:
       !!              - to debug a MPI run .vs. a mono-processor one; 
@@ -54,6 +54,6 @@
       !!              - All arguments of the above calling sequence are optional so their
       !!                name must be explicitly typed if used. For instance if the mask
-      !!                array tmask(:,:,:) must be passed through the prt_ctl subroutine, 
-      !!                it must looks like: CALL prt_ctl( mask=tmask ).
+      !!                array tmask(:,:,:) must be passed through the prt_ctl_trc subroutine, 
+      !!                it must look like: CALL prt_ctl_trc( mask=tmask ).
       !!----------------------------------------------------------------------
       REAL(wp)         , DIMENSION(:,:,:,:), INTENT(in), OPTIONAL ::   tab4d     ! 4D array
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcini.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcini.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcini.F90	(revision 12210)
@@ -140,5 +140,5 @@
       ENDIF
       IF(lwp) WRITE(numout,*)
-      IF(ln_ctl) THEN            ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc) THEN            ! print mean trends (used for debugging)
          CALL prt_ctl_trc_init
          WRITE(charout, FMT="('ini ')")
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcsms.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcsms.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcsms.F90	(revision 12210)
@@ -55,5 +55,5 @@
       IF( ln_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers
 
-      IF(ln_ctl) THEN      ! print mean trends (used for debugging)
+      IF(sn_cfctl%l_prttrc) THEN                       ! print mean trends (used for debugging)
          WRITE(charout, FMT="('sms ')")
          CALL prt_ctl_trc_info( charout )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcstp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcstp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/TOP/trcstp.F90	(revision 12210)
@@ -69,5 +69,5 @@
       ENDIF
       !
-      ll_trcstat  = ( ln_ctl .OR. sn_cfctl%l_trcstat ) .AND. &
+      ll_trcstat  = ( sn_cfctl%l_trcstat ) .AND. &
      &              ( ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend ) )
       IF( kt == nittrc000 .AND. lk_trdmxl_trc )  CALL trd_mxl_trc_init    ! trends: Mixed-layer
@@ -77,5 +77,5 @@
             cvol(:,:,jk) = e1e2t(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk)
          END DO
-         IF ( ln_ctl .OR. kt == nitrst .OR. ( ln_check_mass .AND. kt == nitend )              &
+         IF ( ll_trcstat .OR. kt == nitrst .OR. ( ln_check_mass .AND. kt == nitend )   &
             & .OR. iom_use( "pno3tot" ) .OR. iom_use( "ppo4tot" ) .OR. iom_use( "psiltot" )   &
             & .OR. iom_use( "palktot" ) .OR. iom_use( "pfertot" ) )                           &
@@ -89,5 +89,5 @@
       IF( MOD( kt , nn_dttrc ) == 0 ) THEN      ! only every nn_dttrc time step
          !
-         IF(ln_ctl) THEN
+         IF(sn_cfctl%l_prttrc) THEN
             WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear
             CALL prt_ctl_trc_info(charout)
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/BENCH/MY_SRC/zdfiwm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/BENCH/MY_SRC/zdfiwm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/BENCH/MY_SRC/zdfiwm.F90	(revision 12210)
@@ -365,5 +365,5 @@
       CALL iom_put( "emix_iwm", zemx_iwm )
       
-      IF(ln_ctl)   CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', kdim=jpk)
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', kdim=jpk)
       !
    END SUBROUTINE zdf_iwm
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/CANAL/MY_SRC/stpctl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/CANAL/MY_SRC/stpctl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/CANAL/MY_SRC/stpctl.F90	(revision 12210)
@@ -72,5 +72,5 @@
       !
       ll_wrtstp  = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend )
-      ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR. sn_cfctl%l_runstat )
+      ll_colruns = ll_wrtstp .AND. ( sn_cfctl%l_prtctl .OR. sn_cfctl%l_runstat )
       ll_wrtruns = ll_colruns .AND. lwm
       IF( kt == nit000 .AND. lwp ) THEN
@@ -82,5 +82,5 @@
          !                                ! open run.stat file(s) at start whatever
          !                                ! the value of sn_cfctl%ptimincr
-         IF( lwm .AND. ( ln_ctl .OR. sn_cfctl%l_runstat ) ) THEN
+         IF( lwm .AND. ( sn_cfctl%l_prtctl .OR. sn_cfctl%l_runstat ) ) THEN
             CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
             clname = 'run.stat.nc'
@@ -147,5 +147,5 @@
       END IF
       !                                   !==  error handling  ==!
-      IF( ( ln_ctl .OR. lsomeoce ) .AND. (   &             ! have use mpp_max (because ln_ctl=.T.) or contains some ocean points
+      IF( ( sn_cfctl%l_prtctl .OR. lsomeoce ) .AND. (   &             ! have use mpp_max (because sn_cfctl%l_prtctl=.T.) or contains some ocean points
          &  zmax(1) >   50._wp .OR.   &                    ! too large sea surface height ( > 50 m )
          &  zmax(2) >   20._wp .OR.   &                    ! too large velocity ( > 20 m/s)
@@ -154,5 +154,5 @@
 !!$         &  zmax(4) <    0._wp .OR.   &                    ! too large sea surface salinity (keep this line for sea-ice)
          &  ISNAN( zmax(1) + zmax(2) + zmax(3) ) ) ) THEN   ! NaN encounter in the tests
-         IF( lk_mpp .AND. ln_ctl ) THEN
+         IF( lk_mpp .AND. sn_cfctl%l_prtctl ) THEN
             CALL mpp_maxloc( 'stpctl', ABS(sshn)        , ssmask(:,:)  , zzz, ih  )
             CALL mpp_maxloc( 'stpctl', ABS(un)          , umask (:,:,:), zzz, iu  )
@@ -175,5 +175,5 @@
          CALL dia_wri_state( 'output.abort' )     ! create an output.abort file
          
-         IF( .NOT. ln_ctl ) THEN
+         IF( .NOT. sn_cfctl%l_prtctl ) THEN
             WRITE(ctmp8,*) 'E R R O R message from sub-domain: ', narea
             CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp8, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ctmp6 )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/CANAL/MY_SRC/trazdf.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/CANAL/MY_SRC/trazdf.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/CANAL/MY_SRC/trazdf.F90	(revision 12210)
@@ -99,5 +99,5 @@
       ENDIF
       !                                          ! print mean trends (used for debugging)
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf  - Ta: ', mask1=tmask,               &
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf  - Ta: ', mask1=tmask,               &
          &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/eosbn2.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/eosbn2.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/eosbn2.F90	(revision 12210)
@@ -318,5 +318,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-insitu  : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-insitu  : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('eos-insitu')
@@ -504,5 +504,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('eos-pot')
@@ -617,5 +617,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=prd, clinfo1=' eos2d: ' )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=prd, clinfo1=' eos2d: ' )
       !
       IF( ln_timing )   CALL timing_stop('eos2d')
@@ -749,5 +749,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=pab(:,:,:,jp_tem), clinfo1=' rab_3d_t: ', &
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pab(:,:,:,jp_tem), clinfo1=' rab_3d_t: ', &
          &                       tab3d_2=pab(:,:,:,jp_sal), clinfo2=' rab_3d_s : ', kdim=jpk )
       !
@@ -883,5 +883,5 @@
       END SELECT
       !
-      IF(ln_ctl)   CALL prt_ctl( tab2d_1=pab(:,:,jp_tem), clinfo1=' rab_2d_t: ', &
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=pab(:,:,jp_tem), clinfo1=' rab_2d_t: ', &
          &                       tab2d_2=pab(:,:,jp_sal), clinfo2=' rab_2d_s : ' )
       !
@@ -1039,5 +1039,5 @@
       END DO
       !
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=pn2, clinfo1=' bn2  : ', kdim=jpk )
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=pn2, clinfo1=' bn2  : ', kdim=jpk )
       !
       IF( ln_timing )   CALL timing_stop('bn2')
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/isfstp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/isfstp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/isfstp.F90	(revision 12210)
@@ -248,5 +248,5 @@
       IF ( l_isfoasis .AND. ln_isf ) THEN
          !
-         CALL ctl_stop( ' ln_ctl and ice shelf not tested' )
+         CALL ctl_stop( ' sn_cfctl%l_prtctl and ice shelf not tested' )
          !
          ! NEMO coupled to ATMO model with isf cavity need oasis method for melt computation 
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/tradmp.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/tradmp.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP+/MY_SRC/tradmp.F90	(revision 12210)
@@ -156,5 +156,5 @@
       ENDIF
       !                           ! Control print
-      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' dmp  - Ta: ', mask1=tmask,   &
+      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' dmp  - Ta: ', mask1=tmask,   &
          &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_coare3p6-noskin_cfg
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_coare3p6-noskin_cfg	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_coare3p6-noskin_cfg	(revision 12210)
@@ -278,5 +278,4 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg	(revision 12210)
@@ -278,5 +278,4 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ecmwf-noskin_cfg
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ecmwf-noskin_cfg	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ecmwf-noskin_cfg	(revision 12210)
@@ -278,5 +278,4 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg	(revision 12210)
@@ -278,5 +278,4 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ncar_cfg
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ncar_cfg	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/EXPREF/namelist_ncar_cfg	(revision 12210)
@@ -278,5 +278,4 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/nemogcm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/nemogcm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/nemogcm.F90	(revision 12210)
@@ -158,5 +158,5 @@
       INTEGER ::   ios, ilocal_comm   ! local integers
       !!
-      NAMELIST/namctl/ ln_ctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   &
+      NAMELIST/namctl/ sn_cfctl%l_prtctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   &
          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             &
          &             ln_timing, ln_diacfl
@@ -197,5 +197,5 @@
       !
       !                             !--------------------!
-      !                             ! Open listing units !  -> need ln_ctl from namctl to define lwp
+      !                             ! Open listing units !  -> need sn_cfctl%l_prtctl from namctl to define lwp
       !                             !--------------------!
       !
@@ -206,5 +206,5 @@
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namctl in configuration namelist' )
       !
-      lwp = (narea == 1) .OR. ln_ctl    ! control of all listing output print
+      lwp = (narea == 1) .OR. sn_cfctl%l_prtctl    ! control of all listing output print
       !
       IF(lwp) THEN                      ! open listing units
@@ -247,6 +247,6 @@
             &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )
       ELSE
-         ! Use ln_ctl to turn on or off all options.
-         CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )
+         ! Use sn_cfctl%l_prtctl to turn on or off all options.
+         CALL nemo_set_cfctl( sn_cfctl, sn_cfctl%l_prtctl, .TRUE. )
       ENDIF
       !
@@ -292,5 +292,5 @@
       IF( lk_c1d       )   CALL     c1d_init        ! 1D column configuration
       CALL     dom_init("OPA") ! Domain
-      IF( ln_ctl       )   CALL prt_ctl_init        ! Print control
+      IF( sn_cfctl%l_prtctl       )   CALL prt_ctl_init        ! Print control
 
       CALL day_init        ! model calendar (using both namelist and restart infos)
@@ -322,5 +322,5 @@
          WRITE(numout,*) '~~~~~~~~'
          WRITE(numout,*) '   Namelist namctl'
-         WRITE(numout,*) '      run control (for debugging)     ln_ctl     = ', ln_ctl
+         WRITE(numout,*) '      run control (for debugging)     sn_cfctl%l_prtctl     = ', sn_cfctl%l_prtctl
          WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config
          WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat
@@ -367,5 +367,5 @@
       !                             ! Parameter control
       !
-      IF( ln_ctl ) THEN                 ! sub-domain area indices for the control prints
+      IF( sn_cfctl%l_prtctl ) THEN                 ! sub-domain area indices for the control prints
          IF( lk_mpp .AND. jpnij > 1 ) THEN
             isplt = jpni   ;   jsplt = jpnj   ;   ijsplt = jpni*jpnj   ! the domain is forced to the real split domain
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/sbcssm.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/sbcssm.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/sbcssm.F90	(revision 12210)
@@ -131,5 +131,5 @@
       vb (:,:,1) = ssv_m(:,:)
  
-      IF(ln_ctl) THEN                  ! print control
+      IF(sn_cfctl%l_prtctl) THEN                  ! print control
          CALL prt_ctl(tab2d_1=sst_m, clinfo1=' sst_m   - : ', mask1=tmask   )
          CALL prt_ctl(tab2d_1=sss_m, clinfo1=' sss_m   - : ', mask1=tmask   )
Index: /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/stpctl.F90
===================================================================
--- /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/stpctl.F90	(revision 12209)
+++ /NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/STATION_ASF/MY_SRC/stpctl.F90	(revision 12210)
@@ -67,5 +67,5 @@
       !
       ll_wrtstp  = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend )
-      ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR. sn_cfctl%l_runstat )
+      ll_colruns = ll_wrtstp .AND. ( sn_cfctl%l_prtctl .OR. sn_cfctl%l_runstat )
       ll_wrtruns = ll_colruns
       IF( kt == nit000 .AND. lwp ) THEN
@@ -77,5 +77,5 @@
          !                                ! open run.stat file(s) at start whatever
          !                                ! the value of sn_cfctl%ptimincr
-         IF( ln_ctl .OR. sn_cfctl%l_runstat ) THEN
+         IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_runstat ) THEN
             CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
             clname = 'run.stat.nc'
@@ -114,5 +114,5 @@
       END IF
       !                                   !==  error handling  ==!
-      IF( ( ln_ctl .OR. lsomeoce ) .AND. (   &             ! have use mpp_max (because ln_ctl=.T.) or contains some ocean points
+      IF( ( sn_cfctl%l_prtctl .OR. lsomeoce ) .AND. (   &             ! have use mpp_max (because sn_cfctl%l_prtctl=.T.) or contains some ocean points
          &  zmax(1) >    5._wp .OR.   &             ! too large wind stress ( > 5 N/m^2 )
          &  zmax(2) > 2000._wp .OR.   &             ! too large non-solar heat flux ( > 2000 W/m^2)
@@ -128,5 +128,5 @@
          CALL dia_wri_state( 'output.abort' )     ! create an output.abort file
 
-         IF( .NOT. ln_ctl ) THEN
+         IF( .NOT. sn_cfctl%l_prtctl ) THEN
             WRITE(ctmp8,*) 'E R R O R message from sub-domain: ', narea
             CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp2, ' ', ctmp6, ' ' )
