Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/file_def_nemo-oce.xml
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/file_def_nemo-oce.xml	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/file_def_nemo-oce.xml	(revision 11930)
@@ -16,14 +16,15 @@
       <field field_ref="dt_skin"      name="dt_skin"  />
       <!--    -->
-      <field field_ref="qt_oce"       name="qt_oce"   />
-      <field field_ref="qsr_oce"      name="qsr_oce"  />
-      <field field_ref="qns_oce"      name="qns_oce"  />
-      <field field_ref="qla_oce"      name="qla_oce"  />
-      <field field_ref="evap_oce"     name="evap_oce" />
-      <field field_ref="qsb_oce"      name="qsb_oce"  />
-      <field field_ref="qlw_oce"      name="qlw_oce"  />
+      <field field_ref="qt_oce"       name="qt"   />
+      <field field_ref="qsr_oce"      name="qsr"  />
+      <field field_ref="qns_oce"      name="qns"  />
+      <field field_ref="qla_oce"      name="qla"  />
+      <field field_ref="qsb_oce"      name="qsb"  />
+      <field field_ref="qlw_oce"      name="qlw"  />
+      <field field_ref="qemp_oce"     name="qemp" />
       <!-- -->
-      <field field_ref="qemp_oce"     name="qemp_oce" />
-      <field field_ref="precip"       name="precip"   />
+      <field field_ref="evap_oce"     name="evap" />
+      <field field_ref="precip"       name="precip" />
+      <field field_ref="empmr"        name="empmr" />
       <!-- -->
       <field field_ref="taum"         name="taum"     />
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/launch_sasf.sh
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/launch_sasf.sh	(revision 11930)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/launch_sasf.sh	(revision 11930)
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+# NEMO directory where to fetch compiled STATION_ASF nemo.exe + setup:
+NEMO_DIR="${HOME}/NEMO/NEMOvdev_r11085_ASINTER-05_Brodeau_Advanced_Bulk"
+
+# Directory where to run the simulation:
+WORK_DIR="${HOME}/tmp/STATION_ASF"
+
+
+# FORC_DIR => Directory containing sea-surface + atmospheric forcings
+#             (get it there https://drive.google.com/file/d/1MxNvjhRHmMrL54y6RX7WIaM9-LGl--ZP/):
+if [ `hostname` = "merlat"        ]; then
+    FORC_DIR="/MEDIA/data/STATION_ASF/input_data_STATION_ASF_2016-2018"
+elif [ `hostname` = "luitel"        ]; then
+    FORC_DIR="/data/gcm_setup/STATION_ASF/input_data_STATION_ASF_2016-2018"
+elif [ `hostname` = "ige-meom-cal1" ]; then
+    FORC_DIR="/mnt/meom/workdir/brodeau/STATION_ASF/input_data_STATION_ASF_2016-2018"
+elif [ `hostname` = "salvelinus" ]; then
+    FORC_DIR="/opt/data/STATION_ASF/input_data_STATION_ASF_2016-2018"
+else
+    echo "Boo!"; exit
+fi
+#======================
+mkdir -p ${WORK_DIR}
+
+NEMO_EXE="${NEMO_DIR}/tests/STATION_ASF/BLD/bin/nemo.exe"
+if [ ! -f ${NEMO_EXE} ]; then echo " Mhhh, no compiled nemo.exe found into ${NEMO_DIR}/tests/STATION_ASF/BLD/bin !"; exit; fi
+
+NEMO_EXPREF="${NEMO_DIR}/tests/STATION_ASF/EXPREF"
+if [ ! -d ${NEMO_EXPREF} ]; then echo " Mhhh, no EXPREF directory ${NEMO_EXPREF} !"; exit; fi
+
+rsync -avP ${NEMO_EXE}          ${WORK_DIR}/
+
+for ff in "context_nemo.xml" "domain_def_nemo.xml" "field_def_nemo-oce.xml" "file_def_nemo-oce.xml" "grid_def_nemo.xml" "iodef.xml" "namelist_ref"; do
+    if [ ! -f ${NEMO_EXPREF}/${ff} ]; then echo " Mhhh, ${ff} not found into ${NEMO_EXPREF} !"; exit; fi
+    rsync -avPL ${NEMO_EXPREF}/${ff} ${WORK_DIR}/
+done
+
+# Copy forcing to work directory:
+rsync -avP ${FORC_DIR}/Station_PAPA_50N-145W*.nc ${WORK_DIR}/
+
+for CASE in "ECMWF" "COARE3p6" "NCAR"; do
+
+    echo ; echo
+    echo "============================="
+    echo " Going for ${CASE} experiment"
+    echo "============================="
+    echo
+
+    scase=`echo "${CASE}" | tr '[:upper:]' '[:lower:]'`
+
+    rm -f ${WORK_DIR}/namelist_cfg
+    rsync -avPL ${NEMO_EXPREF}/namelist_${scase}_cfg ${WORK_DIR}/namelist_cfg
+
+    cd ${WORK_DIR}/
+    echo
+    echo "Launching NEMO !"
+    ./nemo.exe 1> out_nemo.out 2>err_nemo.err
+    echo "Done!"
+    echo
+
+    # Moving output files:
+    mkdir -p output
+    mv -f STATION_ASF-${CASE}_*_grid*.nc output/
+    
+    # Saving logs:
+    mkdir -p ${CASE}_log
+    mv -f *.out *.err ocean.output output.namelist.dyn ${CASE}_log/
+
+done
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg	(revision 11930)
@@ -277,5 +277,5 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false. !lolo
+ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg	(revision 11930)
@@ -277,5 +277,5 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false. !lolo
+ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_ncar_cfg
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_ncar_cfg	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/namelist_ncar_cfg	(revision 11930)
@@ -277,5 +277,5 @@
 &namctl        !   Control prints                                       (default: OFF)
 !-----------------------------------------------------------------------
-ln_ctl = .false. !lolo
+ln_ctl = .false.
 /
 !-----------------------------------------------------------------------
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/plot_station_asf.py
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/plot_station_asf.py	(revision 11930)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/plot_station_asf.py	(revision 11930)
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
+
+# Post-diagnostic of STATION_ASF /  L. Brodeau, 2019
+
+import sys
+#from os import path as path
+#from string import replace
+import math
+import numpy as nmp
+#import scipy.signal as signal
+from netCDF4 import Dataset
+import matplotlib as mpl
+mpl.use('Agg')
+import matplotlib.pyplot as plt
+import matplotlib.dates as mdates
+#from string import find
+#import warnings
+#warnings.filterwarnings("ignore")
+#import time
+
+#import barakuda_plot as bp
+#import barakuda_tool as bt
+
+reload(sys)
+sys.setdefaultencoding('utf8')
+
+cy1     = '2016' ; # First year 
+cy2     = '2018' ; # Last year
+
+dir_figs='.'
+size_fig=(13,7)
+fig_ext='png'
+
+clr_red = '#AD0000'
+clr_sat = '#ffed00'
+clr_mod = '#008ab8'
+
+rDPI=200.
+
+L_ALGOS = [ 'COARE3p6' , 'ECMWF'   , 'NCAR' ]
+l_color = [  '#ffed00' , '#008ab8' , '0.4'  ] ; # colors to differentiate algos on the plot
+l_width = [     3      ,    2      ,  1     ] ; # line-width to differentiate algos on the plot
+l_style = [    '-'     ,   '-'     , '--'   ] ; # line-style
+
+L_VNEM  = [ 'qla'  , 'qsb'   , 'qt'   , 'qlw' , 'taum'  , 'dt_skin'  ]
+L_VARO  = [  'Qlat'    ,   'Qsen'    ,  'Qnet'    ,  'Qlw'    , 'Tau'   , 'dT_skin'  ] ; # name of variable on figure
+L_VARL  = [r'$Q_{lat}$',r'$Q_{sens}$',r'$Q_{net}$',r'$Q_{lw}$',r'$|\tau|$',r'$\Delta T_{skin}$' ] ; # name of variable in latex mode
+L_VUNT  = [  r'$W/m^2$'   ,  r'$W/m^2$'    ,  r'$W/m^2$'   ,  r'$W/m^2$'  , r'$N/m^2$' ,   'K'     ]
+L_VMAX  = [    75.     ,    75.      ,   800.     ,    25.    ,   1.2   ,   -0.7     ]
+L_VMIN  = [  -250.     ,  -125.      ,  -400.     ,  -150.    ,   0.    ,    0.7     ]
+L_ANOM  = [  True      ,   True      ,   True     ,   True    ,  True   ,  False     ]
+
+nb_algos = len(L_ALGOS) ; print(nb_algos)
+
+# Getting arguments:
+narg = len(sys.argv)
+if narg != 3:
+    print 'Usage: '+sys.argv[0]+' <DIR_OUT_SASF> <year>'; sys.exit(0)
+cdir_in = sys.argv[1]
+cyyyy   = sys.argv[2]
+
+
+
+# Files to be read:
+cf_in = []
+for ja in range(nb_algos): cf_in.append(cdir_data+'/output/'+'STATION_ASF-'+L_ALGOS[ja]+'_1h_'+cy1+'0101_'+cy2+'1231_gridT.nc')
+print('Files we are goin to use:')
+for ja in range(nb_algos): print(cf_in[ja])
+
+
+# Getting time array from the first file:
+id_in = Dataset(cf_in[0])
+vt = id_in.variables['time_counter'][:]
+cunit_t = id_in.variables['time_counter'].units ; print(' "time_counter" is in "'+cunit_t+'"')
+id_in.close()
+nbr = len(vt)
+
+
+
+
+vtime = nmp.zeros(nbr)
+
+vt = vt + 1036800. # BUG!??? don't get why false in epoch to date conversion, and yet ncview gets it right!
+for jt in range(nbr): vtime[jt] = mdates.epoch2num(vt[jt])
+
+ii=nbr/300
+ib=max(ii-ii%10,1)
+xticks_d=int(30*ib)
+
+font_inf = { 'fontname':'Open Sans', 'fontweight':'normal', 'fontsize':14 }
+
+nb_var = len(L_VNEM)
+
+xF  = nmp.zeros((nbr,nb_algos))
+xFa = nmp.zeros((nbr,nb_algos))
+
+
+
+
+
+for jv in range(nb_var):
+    print('\n *** Treating variable: '+L_VARO[jv]+' !')
+
+    for ja in range(nb_algos):
+        id_in = Dataset(cf_in[ja])
+        xF[:,ja] = id_in.variables[L_VNEM[jv]][:,1,1] # only the center point of the 3x3 spatial domain!
+        if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name
+        id_in.close()    
+        #print('    => '+L_ALGOS[ja]+'  => ok!')
+
+
+    fig = plt.figure(num = jv, figsize=size_fig, facecolor='w', edgecolor='k')
+
+    ax1 = plt.axes([0.07, 0.22, 0.9, 0.75])
+
+    ax1.set_xticks(vtime[::xticks_d])
+    ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))
+    plt.xticks(rotation='60')
+
+    for ja in range(nb_algos):
+        plt.plot(vtime, xF[:,ja], '-', color=l_color[ja], linestyle=l_style[ja], linewidth=l_width[ja], label=L_ALGOS[ja], zorder=10+ja)
+
+    ax1.set_ylim(L_VMIN[jv], L_VMAX[jv]) ; ax1.set_xlim(vtime[0],vtime[nbr-1])
+    plt.ylabel(L_VARL[jv]+' ['+L_VUNT[jv]+']')
+    
+    ax1.grid(color='k', linestyle='-', linewidth=0.3)
+    plt.legend(bbox_to_anchor=(0.45, 0.2), ncol=1, shadow=True, fancybox=True)
+    ax1.annotate(cvar_lnm, xy=(0.3, 0.97), xycoords='axes fraction',  bbox={'facecolor':'w', 'alpha':1., 'pad':10}, zorder=50, **font_inf)
+    plt.savefig(L_VARO[jv]+'.'+fig_ext, dpi=int(rDPI), transparent=False)
+    plt.close(jv)
+
+
+
+    if L_ANOM[jv]:
+
+        for ja in range(nb_algos): xFa[:,ja] = xF[:,ja] - nmp.mean(xF,axis=1)
+
+        # Want a symetric y-range that makes sense for the anomaly we're looking at:
+        rmax = nmp.max(xFa) ; rmin = nmp.min(xFa)
+        rmax = max( abs(rmax) , abs(rmin) )
+        romagn = math.floor(math.log(rmax, 10)) ; # order of magnitude of the anomaly  we're dealing with
+        rmlt = 10.**(int(romagn)) / 2.
+        yrng = math.copysign( math.ceil(abs(rmax)/rmlt)*rmlt , rmax)
+        #print 'yrng = ', yrng ;  #sys.exit(0)
+        
+        fig = plt.figure(num = 10+jv, figsize=size_fig, facecolor='w', edgecolor='k')
+        ax1 = plt.axes([0.07, 0.22, 0.9, 0.75])
+        
+        ax1.set_xticks(vtime[::xticks_d])
+        ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))
+        plt.xticks(rotation='60')
+        
+        for ja in range(nb_algos):
+            plt.plot(vtime, xFa[:,ja], '-', color=l_color[ja], linewidth=l_width[ja], label=L_ALGOS[ja], zorder=10+ja)
+
+        ax1.set_ylim(-yrng,yrng) ; ax1.set_xlim(vtime[0],vtime[nbr-1])
+        plt.ylabel(L_VARL[jv]+' ['+L_VUNT[jv]+']')
+        ax1.grid(color='k', linestyle='-', linewidth=0.3)
+        plt.legend(bbox_to_anchor=(0.45, 0.2), ncol=1, shadow=True, fancybox=True)
+        ax1.annotate('Anomaly of '+cvar_lnm, xy=(0.3, 0.97), xycoords='axes fraction',  bbox={'facecolor':'w', 'alpha':1., 'pad':10}, zorder=50, **font_inf)
+        plt.savefig(L_VARO[jv]+'_anomaly.'+fig_ext, dpi=int(rDPI), transparent=False)
+        plt.close(10+jv)
+
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/step_c1d.F90
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/step_c1d.F90	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/step_c1d.F90	(revision 11930)
@@ -67,16 +67,13 @@
       ! Control
       !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-      !LOLO:                       
-                            ! LOLO: should write a stp_ctl, who checks on flux realism (current SAS version checks ice fields...)
-                            ! CALL stp_ctl( kstp, indic )
-      !IF( indic < 0  )  THEN
-      !                       CALL ctl_stop( 'step: indic < 0' )
-      !                       CALL dia_wri_state( 'output.abort' )
-      !ENDIF
-      !LOLO.
+                             CALL stp_ctl( kstp, indic )
+      IF( indic < 0  )  THEN
+                             CALL ctl_stop( 'step: indic < 0' )
+                             CALL dia_wri_state( 'output.abort' )
+      ENDIF
                              
       IF( kstp == nit000   ) CALL iom_close( numror )     ! close input  ocean restart file
 
-      !LOLO: from C1D:
+      !#LB: from C1D:
       IF( lrst_oce       )   CALL rst_write( kstp )        ! write output ocean restart file
       !
@@ -85,5 +82,5 @@
 #endif
 
-      !LOLO: from SAS"
+      !#LB: from SAS"
 !#if defined key_iomput
 !      IF( kstp == nitrst ) THEN
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/stpctl.F90
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/stpctl.F90	(revision 11930)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/stpctl.F90	(revision 11930)
@@ -0,0 +1,146 @@
+MODULE stpctl
+   !!======================================================================
+   !!                       ***  MODULE  stpctl  ***
+   !! Ocean run control :  gross check of the ocean time stepping
+   !!                      version for STATION_ASF test-case
+   !!======================================================================
+   !! History :  OPA  ! 1991-03  (G. Madec) Original code
+   !!            6.0  ! 1992-06  (M. Imbard)
+   !!            8.0  ! 1997-06  (A.M. Treguier)
+   !!   NEMO     1.0  ! 2002-06  (G. Madec)  F90: Free form and module
+   !!            2.0  ! 2009-07  (G. Madec)  Add statistic for time-spliting
+   !!            3.7  ! 2016-09  (G. Madec)  Remove solver
+   !!            4.0  ! 2017-04  (G. Madec)  regroup global communications
+   !!            4.x  ! 2019-10  (L. Brodeau)  adapted for STATION_ASF test-case
+   !!----------------------------------------------------------------------
+
+   !!----------------------------------------------------------------------
+   !!   stp_ctl      : Control the run
+   !!----------------------------------------------------------------------
+   !USE oce             ! ocean dynamics and tracers variables
+   USE dom_oce         ! ocean space and time domain variables
+   !USE ice      , ONLY : vt_i, u_ice, tm_i
+   !
+   USE sbc_oce         ! surface fluxes and stuff
+   USE diawri
+   !
+   USE in_out_manager  ! I/O manager
+   USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
+   USE lib_mpp         ! distributed memory computing
+
+   USE netcdf          ! NetCDF library
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC stp_ctl           ! routine called by step.F90
+
+   INTEGER  ::   idrun, idtime, idtau, idqns, idemp, istatus
+   LOGICAL  ::   lsomeoce
+   !!----------------------------------------------------------------------
+   !! NEMO/SAS 4.0 , NEMO Consortium (2018)
+   !! $Id: stpctl.F90 10603 2019-01-29 11:18:09Z acc $
+   !! Software governed by the CeCILL license (see ./LICENSE)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE stp_ctl( kt, kindic )
+      !!----------------------------------------------------------------------
+      !!                    ***  ROUTINE stp_ctl  ***
+      !!
+      !! ** Purpose :   Control the run
+      !!
+      !! ** Method  : - Save the time step in numstp
+      !!              - Print it each 50 time steps
+      !!              - Stop the run IF problem encountered by setting indic=-3
+      !!
+      !! ** Actions :   "time.step" file = last ocean time-step
+      !!                "run.stat"  file = run statistics
+      !!----------------------------------------------------------------------
+      INTEGER, INTENT(in   ) ::   kt       ! ocean time-step index
+      INTEGER, INTENT(inout) ::   kindic   ! error indicator
+      !!
+      REAL(wp), DIMENSION(3) ::   zmax
+      LOGICAL                ::   ll_wrtstp, ll_colruns, ll_wrtruns
+      CHARACTER(len=20) :: clname
+      !!----------------------------------------------------------------------
+      !
+      ll_wrtstp  = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend )
+      ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR. sn_cfctl%l_runstat )
+      ll_wrtruns = ll_colruns
+      IF( kt == nit000 .AND. lwp ) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) 'stp_ctl : time-stepping control'
+         WRITE(numout,*) '~~~~~~~'
+         !                                ! open time.step file
+         CALL ctl_opn( numstp, 'time.step', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+         !                                ! open run.stat file(s) at start whatever
+         !                                ! the value of sn_cfctl%ptimincr
+         IF( ln_ctl .OR. sn_cfctl%l_runstat ) THEN
+            CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+            clname = 'run.stat.nc'
+            IF( .NOT. Agrif_Root() )   clname = TRIM(Agrif_CFixed())//"_"//TRIM(clname)
+            istatus = NF90_CREATE( TRIM(clname), NF90_CLOBBER, idrun )
+            istatus = NF90_DEF_DIM( idrun, 'time', NF90_UNLIMITED, idtime )
+            istatus = NF90_DEF_VAR( idrun, 'tau_max', NF90_DOUBLE, (/ idtime /), idtau )
+            istatus = NF90_DEF_VAR( idrun, 'qns_max', NF90_DOUBLE, (/ idtime /), idqns   )
+            istatus = NF90_DEF_VAR( idrun, 'emp_max', NF90_DOUBLE, (/ idtime /), idemp   )
+            istatus = NF90_ENDDEF(idrun)
+         ENDIF
+      ENDIF
+      IF( kt == nit000 )   lsomeoce = COUNT( ssmask(:,:) == 1._wp ) > 0
+      !
+      IF(ll_wrtstp) THEN        !==  current time step  ==!   ("time.step" file)
+         WRITE ( numstp, '(1x, i8)' )   kt
+         REWIND( numstp )
+      ENDIF
+      !
+      !                                   !==  test of extrema  ==!
+      zmax(1) = MAXVAL(     taum(:,:)   , mask = tmask(:,:,1) == 1._wp )                                         ! max wind stress module
+      zmax(2) = MAXVAL( ABS( qns(:,:) ) , mask = tmask(:,:,1) == 1._wp )                                         ! max non-solar heat flux
+      zmax(3) = MAXVAL( ABS( emp(:,:) ) , mask = tmask(:,:,1) == 1._wp )                                         ! max E-P
+      !
+      IF( ll_colruns ) THEN
+         CALL mpp_max( "stpctl", zmax )          ! max over the global domain
+      ENDIF
+      !                                   !==  run statistics  ==!   ("run.stat" files)
+      IF( ll_wrtruns ) THEN
+         WRITE(numrun,9500) kt, zmax(1), zmax(2), zmax(3)
+         istatus = NF90_PUT_VAR( idrun, idtau, (/ zmax(1)/), (/kt/), (/1/) )
+         istatus = NF90_PUT_VAR( idrun, idqns, (/ zmax(2)/), (/kt/), (/1/) )
+         istatus = NF90_PUT_VAR( idrun, idemp, (/ zmax(3)/), (/kt/), (/1/) )
+         IF( MOD( kt , 100 ) == 0 ) istatus = NF90_SYNC(idrun)
+         IF( kt == nitend         ) istatus = NF90_CLOSE(idrun)
+      END IF
+      !                                   !==  error handling  ==!
+      IF( ( ln_ctl .OR. lsomeoce ) .AND. (   &             ! have use mpp_max (because ln_ctl=.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)
+         &  zmax(3) > 1.E-3_wp .OR.   &             ! too large net freshwater flux ( kg/m^2/s)
+         &  ISNAN( zmax(1) + zmax(2) + zmax(3) ) ) ) THEN   ! NaN encounter in the tests
+
+         !! We are 1D so no need to find a spatial location of the fuck-up!
+
+         WRITE(ctmp1,*) ' stp_ctl: |tau_mod| > 5 N/m2  or  |qns| > 2000 W/m2  or |emp| > 1.E-3 or  NaN encounter in the tests'
+         WRITE(ctmp2,9500) kt,   zmax(1), zmax(2), zmax(3)
+         WRITE(ctmp6,*) '      ===> output of last computed fields in output.abort.nc file'
+
+         CALL dia_wri_state( 'output.abort' )     ! create an output.abort file
+
+         IF( .NOT. ln_ctl ) THEN
+            WRITE(ctmp8,*) 'E R R O R message from sub-domain: ', narea
+            CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp2, ' ', ctmp6, ' ' )
+         ELSE
+            CALL ctl_stop( ctmp1, ' ', ctmp2, ' ', ctmp6, ' ' )
+         ENDIF
+
+         kindic = -3
+         !
+      ENDIF
+      !
+9500  FORMAT(' it :', i8, '    tau_max: ', D23.16, ' |qns|_max: ', D23.16,' |emp|_max: ', D23.16)
+      !
+   END SUBROUTINE stp_ctl
+
+   !!======================================================================
+END MODULE stpctl
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/usrdef_hgr.F90
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/usrdef_hgr.F90	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/usrdef_hgr.F90	(revision 11930)
@@ -67,13 +67,11 @@
       REAL(wp), DIMENSION(:,:), INTENT(out) ::   pe1e2u, pe1e2v               ! u- & v-surfaces (if reduction in strait)   [m2]
       !
-      INTEGER  ::   ji, jj               ! dummy loop indices
-      REAL(wp) ::   zlam1, zlam0, zcos_alpha, zim1 , zjm1 , ze1  , ze1deg, zf0   ! local scalars
-      REAL(wp) ::   zphi1, zphi0, zsin_alpha, zim05, zjm05, zbeta, znorme, zfact !   -      -
+      REAL(wp) :: zf0   ! local scalar
       !!-------------------------------------------------------------------------------
       !
       IF(lwp) WRITE(numout,*)
-      IF(lwp) WRITE(numout,*) 'usr_def_hgr : C1D configuration'
+      IF(lwp) WRITE(numout,*) 'usr_def_hgr : STATION_ASF configuration'
       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~   uniform grid spacing WITH Coriolis force'
-      IF(lwp) WRITE(numout,*) ' LOLO => rn_lon1d, rn_lat1d =', rn_lon1d, rn_lat1d
+      IF(lwp) WRITE(numout,*) '              coordinates of station =>', rn_lon1d, rn_lat1d
       !
       !                       !==  grid point position  ==!   (Special case of 1D config: all lon/lat are the same)
@@ -88,6 +86,6 @@
       pphiv(:,:) = rn_lat1d
       pphif(:,:) = rn_lat1d
+
       !                       !== Horizontal scale factors ==! (in meters)
-      !                     
       !                                         ! constant grid spacing
       pe1t(:,:) = 100.  ;   pe2t(:,:) = 100.
@@ -103,5 +101,8 @@
       !
       !                       !==  Coriolis parameter  ==!
-      kff = 0                 !  indicate to compute Coriolis parameter afterward
+      zf0   = 2._wp * omega * SIN( rad * rn_lat1d )      
+      pff_f(:,:) = zf0
+      pff_t(:,:) = zf0      
+      kff = 1                 !  indicate to skip computing Coriolis parameter afterward
       !
    END SUBROUTINE usr_def_hgr
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/usrdef_nam.F90
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/usrdef_nam.F90	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/MY_SRC/usrdef_nam.F90	(revision 11930)
@@ -8,5 +8,5 @@
    !!======================================================================
    !! History :  4.0  ! 2016-03  (S. Flavoni, G. Madec)  Original code
-   !! History :  trunk  ! 2019-10 (L. Brodeau) for STATION_ASF (C1D meets SAS)
+   !! History :  4.x  ! 2019-10  (L. Brodeau) for STATION_ASF (C1D meets SAS)
    !!----------------------------------------------------------------------
 
Index: /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/README.md
===================================================================
--- /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/README.md	(revision 11929)
+++ /NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/README.md	(revision 11930)
@@ -64,8 +64,16 @@
 
 
+## Playing with STATION_ASF
 
+First compile the test-case as follows (compile with xios-2.5 support → check your ARCH file):
 
+```./makenemo -m <your_arch> -n STATION_ASF -j 4 -a STATION_ASF```
 
+Then you can use the script ``launch_sasf.sh`` found in  ```EXPREF/``` to launch 3 simulations (one for each bulk parameterization available). You need to adapt the following variable to your environment in the script:
 
+- ```NEMO_DIR``` : NEMO root directory where to fetch compiled STATION_ASF ```nemo.exe``` + setup (such as ```${NEMO_DIR}/tests/STATION_ASF```)
 
+- ```WORK_DIR``` :  Directory where to run the simulation
 
+- ```FORC_DIR```  Directory containing sea-surface + atmospheric forcings (get it there https://drive.google.com/file/d/1MxNvjhRHmMrL54y6RX7WIaM9-LGl--ZP/)
+
