- Timestamp:
- 2020-11-26T19:03:34+01:00 (4 years ago)
- 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 332 332 CALL iom_put( "utau", zutau(:,:) ) 333 333 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(:,:) ) 336 337 ENDIF 337 338 ENDIF … … 346 347 CALL iom_put( "vtau", zvtau(:,:) ) 347 348 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(:,:) ) 350 352 ENDIF 351 353 ENDIF -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/OCE/SBC/sbcblk.F90
r13830 r13893 64 64 65 65 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 67 67 68 68 IMPLICIT NONE … … 857 857 858 858 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 860 865 IF(sn_cfctl%l_prtctl) THEN 861 866 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 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-cstc_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-lg15_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce+ice/namelist_ecmwf-lu12_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_andreas_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_coare3p6_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_ecmwf_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/ERA5/oce/namelist_ncar_cfg
r13836 r13893 21 21 !----------------------------------------------------------------------- 22 22 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 ! ! [ PAPAstation = 1 m]23 ! ! [ERA5_NorthGreenland station = 1 m] 24 24 / 25 25 !----------------------------------------------------------------------- … … 47 47 / 48 48 !----------------------------------------------------------------------- 49 &namc1d ! 1D configuration options / STATION_ASF ("key_c1d" default: PAPA station)50 !----------------------------------------------------------------------- 51 rn_lat1d = 50.1 ! Column latitude [PAPAstation]52 rn_lon1d = 215.1 ! Column longitude [PAPAstation]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] 53 53 / 54 54 !----------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/launch_sasf.sh
r13835 r13893 18 18 # => i_sea_ice: whether to compute fluxes over sea-ice as well 19 19 # => 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" 22 21 FORCING="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 computation22 #FORCING="ERA5_NorthGreenland" ; i_sea_ice=0 ; SFORC="ERA5_NorthGreenland_surface_84N_-36E_1h" ; # "ERA5_arctic" WITHOUT ice/air flux computation 24 23 25 24 -
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/EXPREF/plot_station_asf_ICE.py
r13843 r13893 195 195 # 196 196 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! 198 198 if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 199 199 id_in.close() … … 258 258 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 259 fig = plt.figure(num = 10+jv, figsize=size_fig, facecolor='w', edgecolor='k') 260 ax1 = plt.axes([0.0 83, 0.23, 0.9, 0.7])260 ax1 = plt.axes([0.09, 0.23, 0.9, 0.7]) 261 261 ax1.set_xticks(vtime[::xticks_d]) 262 262 ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S')) … … 266 266 fplot = nmp.ma.masked_where( xF[:,ja]==0., xF[:,ja] ) 267 267 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) 269 269 270 270 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 28 28 rDPI=100. 29 29 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 37 l_color = [ '0.3' , '#E8A727', '0.1' , '#008ab8' ] ; # colors to differentiate algos on the plot 38 l_width = [ 2 , 2 , 1.5 , 2 ] ; # line-width to differentiate algos on the plot 39 l_style = [ '-' , '-' , '--' , '-' ] ; # line-style 33 40 34 41 … … 43 50 L_PREC = [ 3 , 3 , 0 , 0 , 0 , 0 , 2 , 3 ] 44 51 L_ANOM = [ False , False , True , True , True , True , True , False ] 52 L_MAXT = [ 10000. , 10000., 10000. , 10000. , 10000. , 10000. , 10000. , 1.5 ] 53 L_MINT = [ 0.001 , 0.001 , -10000. , -10000. , -10000. , -10000. ,-10000. , -10000. ] 45 54 46 55 # About STATION_ASF output files to read: … … 220 229 # 221 230 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! 223 232 if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 224 233 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] 225 239 226 240 idx_okay = nmp.where( nmp.abs(xF) < 1.e+10 ) … … 236 250 fplot = nmp.ma.masked_where( xF[:,ja]==0., xF[:,ja] ) 237 251 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) 239 253 240 254 fmin, fmax = round_bounds( nmp.min(xF[idx_okay]) , nmp.max(xF[idx_okay]), base=L_BASE[jv], prec=L_PREC[jv]) … … 286 300 fplot = nmp.ma.masked_where( xF[:,ja]==0., xF[:,ja] ) 287 301 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) 289 303 290 304 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 5 5 Author: Laurent Brodeau, 2020 6 6 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_ASF9 -->10 11 12 13 7 ## Objectives 14 8 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 15 As input `STATION_ASF` will require the traditional *bulk* sea surface parameters: 23 16 - Bulk sea surface temperature (SST) at _z<sub>SST</sub>_ meters below the surface 24 17 - Surface current vector … … 26 19 27 20 as well as the usual surface atmospheric state: 28 29 21 - air temperature at _z<sub>t</sub>_ meters above the surface 30 22 - air humidity at _z<sub>t</sub>_ meters above the surface (specific humidity or relative humidity or dew-point temperature) … … 34 26 - Downwelling longwave radiation 35 27 36 ### Example of diagnostics from `STATION_ASF` 28 29 ### Example of diagnostics with `STATION_ASF` 37 30 38 31 (Generated with script `./EXPREF/plot_station_asf_simple.py`) … … 49 42 ## Physical description 50 43 51 ### Important namelist parameters specific to STATION_ASF44 ### Important namelist parameters specific to `STATION_ASF` 52 45 53 46 * ```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! … … 58 51 59 52 * ```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 ASF64 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 state69 - ```Station_PAPA_50N-145W_precip_daily_y2018.nc``` → contains daily precipitation70 - ```Station_PAPA_50N-145W_oce_hourly_y2018.nc``` → contains hourly sea surface state71 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.```82 53 83 54 … … 157 128 158 129 159 ## Playing with STATION_ASF 130 ## Playing with `STATION_ASF` 131 132 133 ### Input forcing files to test STATION ASF 134 135 By 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 144 One 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 149 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: 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 167 The namelists for the `PAPA` forcing are located into `EXPREF/PAPA/oce/` 168 169 170 171 #### `ERA5_NorthGreenland` forcing 172 173 The entire forcing is found in one single file: `ERA5_NorthGreenland_surface_84N_-36E_1h_y2018.nc`. 174 Since 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 192 The 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 160 197 161 198 First compile the test-case as follows (compile with xios-2.5 support → check your ARCH file): 162 199 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 202 Move 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 213 Now, it's time to launch simulations: 214 215 $ ./launch_sasf.sh 216 217 If 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 235 Use 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 239 Example of a comparison plot: 240 ![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/Cd_PAPA_open-ocean.svg) 241 242 If 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 246 Example of a comparison plot: 247 ![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/Cd_ERA5_NorthGreenland_sea-ice.svg) 248 Note: 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 252 the 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 !!! 185 258 186 259 Then, 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.