New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13893 for NEMO – NEMO

Changeset 13893 for NEMO


Ignore:
Timestamp:
2020-11-26T19:03:34+01:00 (3 years ago)
Author:
laurent
Message:

Improvements and better README for tests/STATION_ASF

Location:
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice
Files:
1 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/OCE/DYN/dynatf.F90

    r13472 r13893  
    332332            CALL iom_put(  "utau", zutau(:,:) ) 
    333333            DEALLOCATE(zutau) 
    334          ELSE 
    335             CALL iom_put(  "utau", utau(:,:) ) 
     334         !ELSE 
     335         ! #laurent: it is done in blk_oce_1() of sbcblk.F90 ! 
     336         !       CALL iom_put(  "utau", utau(:,:) ) 
    336337         ENDIF 
    337338      ENDIF 
     
    346347            CALL iom_put(  "vtau", zvtau(:,:) ) 
    347348            DEALLOCATE(zvtau) 
    348          ELSE 
    349             CALL iom_put(  "vtau", vtau(:,:) ) 
     349         !ELSE 
     350         ! #laurent: it is done in blk_oce_1() of sbcblk.F90 ! 
     351         !   CALL iom_put(  "vtau", vtau(:,:) ) 
    350352         ENDIF 
    351353      ENDIF 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/OCE/SBC/sbcblk.F90

    r13830 r13893  
    6464 
    6565   USE sbc_phy        ! Catalog of functions for physical/meteorological parameters in the marine boundary layer 
    66  
     66   USE zdfdrg  , ONLY : ln_drgice_imp  ! to know if we should iom_put wind stress vector (utau,vtau) #laurent 
    6767 
    6868   IMPLICIT NONE 
     
    857857 
    858858         CALL iom_put( "taum_oce", taum*tmask(:,:,1) )   ! output wind stress module 
    859  
     859         IF ( .NOT. (ln_drgice_imp.OR.ln_isfcav) ) THEN 
     860            ! #Laurent: because otherwize utau and vtau are saved into dyn_atf() of dynatf.F90 
     861            CALL iom_put( "utau", utau(:,:) ) 
     862            CALL iom_put( "vtau", vtau(:,:) ) 
     863         END IF 
     864          
    860865         IF(sn_cfctl%l_prtctl) THEN 
    861866            CALL prt_ctl( tab2d_1=pssq   , clinfo1=' blk_oce_1: pssq   : ') 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-an05_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-cstc_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-lg15_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-lu12_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_andreas_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_coare3p6_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_ecmwf_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_ncar_cfg

    r13836 r13893  
    2121!----------------------------------------------------------------------- 
    2222   rn_dept1    =  1.0   ! depth (m) at which the prescribed SST is taken  == depth of first T point! (IMPORTANT for warm-layer impact, the deeper, the more pronounced!) 
    23    !                    ! [PAPA station = 1 m] 
     23   !                    ! [ERA5_NorthGreenland station = 1 m] 
    2424/ 
    2525!----------------------------------------------------------------------- 
     
    4747/ 
    4848!----------------------------------------------------------------------- 
    49 &namc1d        !   1D configuration options / STATION_ASF               ("key_c1d" default: PAPA station) 
    50 !----------------------------------------------------------------------- 
    51    rn_lat1d    =      50.1 !  Column latitude    [PAPA station] 
    52    rn_lon1d    =    215.1  !  Column longitude   [PAPA station] 
     49&namc1d        !   1D configuration options / STATION_ASF 
     50!----------------------------------------------------------------------- 
     51   rn_lat1d    =   84. !  Column latitude    [ERA5_NorthGreenland station] 
     52   rn_lon1d    =  324. !  Column longitude   [ERA5_NorthGreenland station] 
    5353/ 
    5454!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/launch_sasf.sh

    r13835 r13893  
    1818#     => i_sea_ice: whether to compute fluxes over sea-ice as well 
    1919#     => SFORC: string sufficient to copy relevant files as in "*${SFORC}*.nc" 
    20 #FORCING="PAPA"         ; i_sea_ice=0 ; SFORC="Station_PAPA_50N-145W" 
    21 #FORCING="ERA5_arctic" ; i_sea_ice=1 ; SFORC="ERA5_arctic_surface_81N_36p75E_1h" ; # "ERA5_arctic" WITH ice/air flux computation 
     20#FORCING="PAPA"                 ; i_sea_ice=0 ; SFORC="Station_PAPA_50N-145W" 
    2221FORCING="ERA5_NorthGreenland" ; i_sea_ice=1 ; SFORC="ERA5_NorthGreenland_surface_84N_-36E_1h" ; # WITH ice/air flux computation 
    23 #FORCING="ERA5_arctic" ; i_sea_ice=0 ; SFORC="ERA5_arctic_surface_81N_36p75E_1h" ; # "ERA5_arctic" WITHOUT ice/air flux computation 
     22#FORCING="ERA5_NorthGreenland" ; i_sea_ice=0 ; SFORC="ERA5_NorthGreenland_surface_84N_-36E_1h" ; # "ERA5_arctic" WITHOUT ice/air flux computation 
    2423 
    2524 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/plot_station_asf_ICE.py

    r13843 r13893  
    195195        # 
    196196        id_in = Dataset(cf_in[ja]) 
    197         xF[:,ja] = id_in.variables[L_VNEM[jv]][:,1,1]  ; # only the center point of the 3x3 spatial domain!         
     197        xF[:,ja] = id_in.variables[L_VNEM[jv]][:,1,1]  ; # only the center point of the 3x3 spatial domain! 
    198198        if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 
    199199        id_in.close() 
     
    258258            #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    259259            fig = plt.figure(num = 10+jv, figsize=size_fig, facecolor='w', edgecolor='k') 
    260             ax1 = plt.axes([0.083, 0.23, 0.9, 0.7]) 
     260            ax1 = plt.axes([0.09, 0.23, 0.9, 0.7]) 
    261261            ax1.set_xticks(vtime[::xticks_d]) 
    262262            ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S')) 
     
    266266                fplot = nmp.ma.masked_where( xF[:,ja]==0., xF[:,ja] ) 
    267267                plt.plot(vtime, fplot, '-', color=l_color[ja], \ 
    268                          linewidth=l_width[ja], label=list_exp[ja], zorder=10+ja) 
     268                         linewidth=l_width[ja], label=list_exp[ja], alpha=0.6) #, zorder=10+ja) 
    269269 
    270270            ax1.set_ylim(-yrng,yrng) ; ax1.set_xlim(vtime[0],vtime[Nt-1]) 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/plot_station_asf_OCE.py

    r13723 r13893  
    2828rDPI=100. 
    2929 
    30 l_color = [ '0.85'    ,  '#ffed00' , '#008ab8' , '0.4'  ] ; # colors to differentiate algos on the plot 
    31 l_width = [  4        ,     3      ,    2      ,  1     ] ; # line-width to differentiate algos on the plot 
    32 l_style = [ '-'       ,    '-'     ,   '-'     , '--'   ] ; # line-style 
     30#l_color = [ '0.85'    ,  '#ffed00' , '#008ab8' , '0.4'  ] ; # colors to differentiate algos on the plot 
     31#l_width = [  4        ,     3      ,    2      ,  1     ] ; # line-width to differentiate algos on the plot 
     32#l_style = [ '-'       ,    '-'     ,   '-'     , '--'   ] ; # line-style 
     33 
     34#ffed00: yellow ON 
     35#E8A727: ornage 
     36 
     37l_color = [ '0.3' , '#E8A727', '0.1'  , '#008ab8'  ] ; # colors to differentiate algos on the plot 
     38l_width = [   2   ,    2     ,  1.5   ,    2       ] ; # line-width to differentiate algos on the plot 
     39l_style = [  '-'  ,    '-'   , '--'   ,   '-'      ] ; # line-style 
    3340 
    3441 
     
    4350L_PREC = [      3      ,      3      ,      0      ,      0        ,       0      ,      0      ,     2       ,        3             ] 
    4451L_ANOM = [   False     ,   False     ,   True      ,    True       ,    True      ,    True     ,   True      ,      False           ] 
     52L_MAXT = [  10000.   ,     10000.,  10000.   ,  10000.      ,  10000.    ,  10000.      , 10000.     ,      1.5    ] 
     53L_MINT = [    0.001  ,     0.001 , -10000.   , -10000.      , -10000.    , -10000.      ,-10000.     ,   -10000.   ] 
    4554 
    4655# About STATION_ASF output files to read: 
     
    220229        # 
    221230        id_in = Dataset(cf_in[ja]) 
    222         xF[:,ja] = id_in.variables[L_VNEM[jv]][:,1,1] # only the center point of the 3x3 spatial domain! 
     231        xF[:,ja] = id_in.variables[L_VNEM[jv]][:,1,1]  ; # only the center point of the 3x3 spatial domain! 
    223232        if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 
    224233        id_in.close() 
     234        # 
     235        id_toolarge, = nmp.where( xF[:,ja] > L_MAXT[jv] ) #  
     236        xF[id_toolarge,ja] = L_MAXT[jv] 
     237        id_toosmall, = nmp.where( xF[:,ja] < L_MINT[jv] ) ; print("id_toosmall =", id_toosmall) 
     238        xF[id_toosmall,ja] = L_MINT[jv] 
    225239 
    226240    idx_okay = nmp.where( nmp.abs(xF) < 1.e+10 ) 
     
    236250        fplot = nmp.ma.masked_where( xF[:,ja]==0., xF[:,ja] ) 
    237251        plt.plot(vtime, fplot, '-', color=l_color[ja], \ 
    238                  linestyle=l_style[ja], linewidth=l_width[ja], label=list_exp[ja], zorder=10+ja) 
     252                 linestyle=l_style[ja], linewidth=l_width[ja], label=list_exp[ja], alpha=0.6 ) #zorder=10+ja) 
    239253 
    240254    fmin, fmax = round_bounds( nmp.min(xF[idx_okay]) , nmp.max(xF[idx_okay]), base=L_BASE[jv], prec=L_PREC[jv]) 
     
    286300                fplot = nmp.ma.masked_where( xF[:,ja]==0., xF[:,ja] ) 
    287301                plt.plot(vtime, fplot, '-', color=l_color[ja], \ 
    288                          linewidth=l_width[ja], label=list_exp[ja], zorder=10+ja) 
     302                         linewidth=l_width[ja], label=list_exp[ja], alpha=0.6) #, zorder=10+ja) 
    289303 
    290304            ax1.set_ylim(-yrng,yrng) ; ax1.set_xlim(vtime[0],vtime[Nt-1]) 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/README.md

    r13868 r13893  
    55Author: Laurent Brodeau, 2020 
    66 
    7 NOTE: if working with the trunk of NEMO, you are strongly advised to use the same test-case but on the `NEMO-examples` GitHub depo: 
    8 https://github.com/NEMO-ocean/NEMO-examples/tree/master/STATION_ASF 
    9 --> 
    10  
    11  
    12  
    137## Objectives 
    148 
    15 ```STATION_ASF``` is a demonstration test-case that mimics a (static) in-situ station (buoy, platform) dedicated to the estimation of surface air-sea fluxes by means of *widely-measured* (bulk) meteorological surface parameters. 
    16  
    17 ```STATION_ASF``` has been constructed by merging the *single column* and the *standalone surface module* configurations of NEMO. In short, it can be defined as "SAS meets C1D". As such, the spatial domain of ```STATION_ASF``` is punctual (1D, well actually 3 x 3 as in C1D). 
    18  
    19 ```STATION_ASF``` is therefore a versatile tool, and extremely lightweight in terms of computing requirements, to test the different bulk algorithms and cool-skin/warm-layer parameterization options included in NEMO. 
    20  
    21 As input ```STATION_ASF``` will require the traditional *bulk* sea surface parameters: 
    22  
     9`STATION_ASF` is a demonstration test-case that mimics a (static) in-situ station (buoy, platform) dedicated to the estimation of surface air-sea fluxes by means of *widely-measured* (bulk) meteorological surface parameters. 
     10 
     11`STATION_ASF` has been constructed by merging the *single column* and the *standalone surface module* configurations of NEMO. In short, it can be defined as "SAS meets C1D". As such, the spatial domain of `STATION_ASF` is punctual (1D, well actually 3 x 3 as in C1D). 
     12 
     13`STATION_ASF` is therefore a versatile tool, and extremely lightweight in terms of computing requirements, to test the different bulk algorithms and cool-skin/warm-layer parameterization options included in NEMO. 
     14 
     15As input `STATION_ASF` will require the traditional *bulk* sea surface parameters: 
    2316- Bulk sea surface temperature (SST) at _z<sub>SST</sub>_ meters below the surface 
    2417- Surface current vector 
     
    2619 
    2720as well as the usual surface atmospheric state: 
    28  
    2921- air temperature at _z<sub>t</sub>_ meters above the surface 
    3022- air humidity  at _z<sub>t</sub>_ meters above the surface (specific humidity or relative humidity or dew-point temperature) 
     
    3426- Downwelling longwave radiation 
    3527 
    36 ### Example of diagnostics from `STATION_ASF` 
     28 
     29### Example of diagnostics with `STATION_ASF` 
    3730 
    3831(Generated with script `./EXPREF/plot_station_asf_simple.py`) 
     
    4942## Physical description 
    5043 
    51 ### Important namelist parameters specific to STATION_ASF 
     44### Important namelist parameters specific to `STATION_ASF` 
    5245 
    5346* ```rn_dept1@namusr_def:``` depth (m) at which the prescribed SST is taken (*i.e.* depth of first T-point); important due to impact on warm-layer estimate, the deeper, the more pronounced! 
     
    5851 
    5952* ```namsbc_sas:``` to be filled carefully, just as for "C1D", the prescribed surface OCEAN state (files) are time series of shape 3x3 in space 
    60  
    61  
    62  
    63 ## Input files to test STATION ASF 
    64  
    65 One full year (2018) of processed hourly data from the PAPA station (buoy) is found into the `input_data` directory. 
    66 These three files are everything you need to play with the set of *namelists* provided for this test-case. 
    67  
    68 - ```Station_PAPA_50N-145W_atm_hourly_y2018.nc```  → contains hourly surface atmospheric state 
    69 - ```Station_PAPA_50N-145W_precip_daily_y2018.nc``` → contains daily precipitation 
    70 - ```Station_PAPA_50N-145W_oce_hourly_y2018.nc``` → contains hourly sea surface state 
    71  
    72 For station PAPA (50.1 N, 144.9 W), air temperature and humidity are measured at 2.5 m, the wind speed at 4 m, and the SST at 1 m below the surface, hence the following namelist parameters are given: 
    73  
    74 - `&namusr_def` 
    75   - ```rn_dept1 =    1.  ``` 
    76 - `&namc1d` 
    77   - ```rn_lat1d =  50.1 ``` 
    78   - ```rn_lon1d = 215.1``` 
    79 - `&namsbc_blk` 
    80   - ```rn_zqt   =   2.5``` 
    81   - ```rn_zu    =    4.``` 
    8253 
    8354 
     
    157128 
    158129 
    159 ## Playing with STATION_ASF 
     130## Playing with `STATION_ASF` 
     131 
     132 
     133### Input forcing files to test STATION ASF 
     134 
     135By default, `STATION_ASF` comes with two forcing sets: 
     136 
     137* The `PAPA` forcing is an "open-ocean-only" hourly forcing, that corresponds to a real off-shore platform, the PAPA station (North-East Pacific, 50°N, 145°W). Hence the data provided for the PAPA test is actual data measured by the PAPA station. 
     138 
     139* The `ERA5_NorthGreenland` forcing simulates a *virtual station* as it is extracted from the ECMWF ERA5 reanalysis right north of Greenland (84°N,36°W). This forcing is also hourly and allows for `STATION_ASF` to be used with sea-ice support as this particular location is ice-covered year-round. 
     140 
     141 
     142#### `PAPA` forcing 
     143 
     144One full year (2018) of processed hourly data from the PAPA station (buoy) are found in the 3 following files (found in `tests/STATION_ASF/input_data`): 
     145- ```Station_PAPA_50N-145W_atm_hourly_y2018.nc```  → contains hourly surface atmospheric state 
     146- ```Station_PAPA_50N-145W_precip_daily_y2018.nc``` → contains daily precipitation 
     147- ```Station_PAPA_50N-145W_oce_hourly_y2018.nc``` → contains hourly sea surface state 
     148 
     149For station PAPA (50.1 N, 144.9 W), air temperature and humidity are measured at 2.5 m, the wind speed at 4 m, and the SST at 1 m below the surface, hence the following namelist parameters are given: 
     150 
     151    ... 
     152    &namusr_def 
     153        rn_dept1 =    1.  
     154    ... 
     155    &namc1d 
     156        rn_lat1d =  50.1  
     157        rn_lon1d = 215.1 
     158    ... 
     159    &namsbc_blk 
     160        ... 
     161        rn_zqt = 2.5 
     162        rn_zu  = 4. 
     163        ... 
     164        ln_humi_rlh = .true.  !  humidity in PAPA data is relative humidity  [%] 
     165        ... 
     166 
     167The namelists for the `PAPA` forcing are located into `EXPREF/PAPA/oce/` 
     168 
     169 
     170 
     171#### `ERA5_NorthGreenland` forcing 
     172 
     173The entire forcing is found in one single file: `ERA5_NorthGreenland_surface_84N_-36E_1h_y2018.nc`. 
     174Since we are dealing with a reanalysis of the ECMWF: 
     175 
     176    ... 
     177    &namusr_def 
     178        rn_dept1 = 1. ! we assume ECMWF uses a prescribed bulk SST product at the standard depth of 1m... 
     179    ... 
     180    &namc1d 
     181        rn_lat1d =  84.  
     182        rn_lon1d = 324. 
     183    ... 
     184    &namsbc_blk 
     185        ... 
     186        rn_zqt =  2. 
     187        rn_zu  = 10. 
     188        ... 
     189        ln_humi_dpt = .true.  !  humidity in ERA5 is dew-point temperature [K] 
     190        ... 
     191 
     192The namelists for the `ERA5_NorthGreenland` forcing are located into `ERA5/oce+ice/` or `ERA5/oce`, depending whether you want to use sea-ice support or not. 
     193 
     194 
     195 
     196### Compiling and launching STATION_ASF simulations 
    160197 
    161198First compile the test-case as follows (compile with xios-2.5 support → check your ARCH file): 
    162199 
    163 ```./makenemo -a STATION_ASF -m <your_arch> -n STATION_ASF2 -j 4``` 
    164  
    165 Move to: ```tests/STATION_ASF/EXPREF/``` 
    166 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: 
    167  
    168 - ```NEMO_ROOT_DIR``` : NEMO root directory where to fetch compiled STATION_ASF ```nemo.exe``` + setup (such as ```${NEMO_ROOT_DIR}/tests/STATION_ASF```) 
    169  
    170 - ```PROD_DIR``` :  Directory where to run the simulation 
    171  
    172 - ```DATA_IN_DIR``` : Directory containing sea-surface + atmospheric forcings (```tests/STATION_ASF/input_data/```) 
    173  
    174 If everything goes according to plan, ``launch_sasf.sh`` should have generated the 3 following sets of output files into `${PROD_DIR}/output`: 
    175  
    176     STATION_ASF-COARE3p6_1h_20180101_20181231_gridT.nc 
    177     STATION_ASF-COARE3p6_1h_20180101_20181231_gridU.nc 
    178     STATION_ASF-COARE3p6_1h_20180101_20181231_gridV.nc 
    179     STATION_ASF-ECMWF_1h_20180101_20181231_gridT.nc 
    180     STATION_ASF-ECMWF_1h_20180101_20181231_gridU.nc 
    181     STATION_ASF-ECMWF_1h_20180101_20181231_gridV.nc 
    182     STATION_ASF-NCAR_1h_20180101_20181231_gridT.nc 
    183     STATION_ASF-NCAR_1h_20180101_20181231_gridU.nc 
    184     STATION_ASF-NCAR_1h_20180101_20181231_gridV.nc 
     200    $ ./makenemo -a STATION_ASF -m <your_arch> -n STATION_ASF2 -j 4 
     201 
     202Move to `tests/STATION_ASF/EXPREF/`, there, you can use the script ``launch_sasf.sh`` to launch `STATION_ASF` simulations. You need to adapt the following variable to your environment in the script: 
     203 
     204- ```CONFIG_BLD``` : the name of the sub-directory of `tests/` in which `STATION_ASF` has been compiled (default: `CONFIG_BLD="STATION_ASF2"`) 
     205 
     206- ```FORCING``` : this is where you pick the forcing you want to use, and wether to use sea-ice support or not (only available for `ERA5_NorthGreenland` forcing) 
     207 
     208- ```PROD_DIR``` :  Directory in which the simulation will be installed and run 
     209 
     210- ```MPI_LAUNCH```: this is where you can adapt how the `nemo.exe` executable is launched on your system (default: `MPI_LAUNCH="mpirun -n 1"`) 
     211 
     212 
     213Now, it's time to launch simulations:  
     214 
     215    $ ./launch_sasf.sh 
     216 
     217If everything goes according to plan, ``launch_sasf.sh`` should have generated the 4 following sets of output files into `${PROD_DIR}/output` (example for PAPA forcing, 4 algos tested): 
     218 
     219    STATION_ASF-ANDREAS_PAPA_1h_20180101_20181231_gridT.nc 
     220    STATION_ASF-ANDREAS_PAPA_1h_20180101_20181231_gridU.nc 
     221    STATION_ASF-ANDREAS_PAPA_1h_20180101_20181231_gridV.nc 
     222    STATION_ASF-COARE3p6_PAPA_1h_20180101_20181231_gridT.nc 
     223    STATION_ASF-COARE3p6_PAPA_1h_20180101_20181231_gridU.nc 
     224    STATION_ASF-COARE3p6_PAPA_1h_20180101_20181231_gridV.nc 
     225    STATION_ASF-ECMWF_PAPA_1h_20180101_20181231_gridT.nc 
     226    STATION_ASF-ECMWF_PAPA_1h_20180101_20181231_gridU.nc 
     227    STATION_ASF-ECMWF_PAPA_1h_20180101_20181231_gridV.nc 
     228    STATION_ASF-NCAR_PAPA_1h_20180101_20181231_gridT.nc 
     229    STATION_ASF-NCAR_PAPA_1h_20180101_20181231_gridU.nc 
     230    STATION_ASF-NCAR_PAPA_1h_20180101_20181231_gridV.nc 
     231 
     232 
     233#### Post-processing and figures 
     234 
     235Use the `plot_station_asf_OCE.py` script (Python 3) to generate a multitude of figures that compares the *open ocean* transfer coefficients and fluxes between the 4 algorithms, in our case with the `PAPA` forcing: 
     236 
     237    $ ./plot_station_asf_OCE.py -d <PROD_DIR> -f PAPA 
     238 
     239Example of a comparison plot: 
     240![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/Cd_PAPA_open-ocean.svg) 
     241 
     242If you have used a forcing with sea-ice support, such as `ERA5_NorthGreenland`, you can do the same for *sea-ice* transfer coefficients and fluxes, which will compare *air-ice* bulk algorithms: 
     243 
     244    $ ./plot_station_asf_ICE.py -d <PROD_DIR> -f ERA5_NorthGreenland 
     245 
     246Example of a comparison plot: 
     247![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/Cd_ERA5_NorthGreenland_sea-ice.svg) 
     248Note: when sea-ice support is enabled, typically by using the following `FORCING` configuration in script `launch_sasf.sh`: 
     249 
     250    FORCING="ERA5_NorthGreenland" ; i_sea_ice=1 ; SFORC="ERA5_NorthGreenland_surface_84N_-36E_1h" 
     251     
     252the fact that `i_sea_ice=1` trigers the computation of *air-ice* fluxes with different bulk *air-ice* algorithms, over the remaining open-ocean fraction the same *air-sea* algorithm is used: `ECMWF`. 
     253 
     254 
     255----------------------- 
     256 
     257#### TO FINISH, BROKEN !!! 
    185258 
    186259Then, you can fire the Jupyter notebook [`station_asf_notebook.ipynb`](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/notebook/station_asf_notebook.ipynb) found into the `notebook` directory! In which you should update `cprod_dir` to the same path as `PROD_DIR` of `launch_sasf.sh`... 
Note: See TracChangeset for help on using the changeset viewer.