Changeset 12031
- Timestamp:
- 2019-12-02T18:23:11+01:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/cfgs/SHARED/namelist_ice_ref
r11831 r12031 60 60 rn_icebfr = 15. ! maximum bottom stress per unit volume [N/m3] 61 61 rn_lfrelax = 1.e-5 ! relaxation time scale to reach static friction [s-1] 62 rn_tensile = 0. 05! isotropic tensile strength [0-0.5??]62 rn_tensile = 0.2 ! isotropic tensile strength [0-0.5??] 63 63 / 64 64 !------------------------------------------------------------------------------ … … 91 91 !------------------------------------------------------------------------------ 92 92 ln_rhg_EVP = .true. ! EVP rheology 93 ln_aEVP = . true.! adaptive rheology (Kimmritz et al. 2016 & 2017)93 ln_aEVP = .false. ! adaptive rheology (Kimmritz et al. 2016 & 2017) 94 94 rn_creepl = 2.0e-9 ! creep limit [1/s] 95 95 rn_ecc = 2.0 ! eccentricity of the elliptical yield curve -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/doc/latex/NEMO/subfiles/chap_SBC.tex
r12019 r12031 651 651 \end{itemize} 652 652 653 654 \subsubsection{Appropriate use of the NCAR algorithm} 655 656 NCAR bulk parameterizations (formerly know as CORE) is meant to be used with the CORE II atmospheric forcing (XXX). Hence the following namelist parameters must be set as follow: 657 % 658 \begin{verbatim} 659 ... 660 ln_NCAR = .true. 661 ... 662 rn_zqt = 10. ! Air temperature & humidity reference height (m) 663 rn_zu = 10. ! Wind vector reference height (m) 664 ... 665 ln_skin_cs = .false. ! use the cool-skin parameterization 666 ln_skin_wl = .false. ! use the warm-layer parameterization 667 ... 668 ln_humi_sph = .true. ! humidity "sn_humi" is specific humidity [kg/kg] 669 \end{verbatim} 670 671 672 \subsubsection{Appropriate use of the ECMWF algorithm} 673 674 With a DFS* or any ECMWF-based type of atmospheric forcing, we strongly 675 recommand to use the ECMWF bulk parameterizations with the cool-skin and 676 warm-layer parameterizations turned on. In ECMWF reanalyzes, since air temperature and humidity are provided at the 2\,m height, and that the humidity is provided as a dew-point temperature, the namelist must be tuned as follows: 677 % 678 \begin{verbatim} 679 ... 680 ln_ECMWF = .true. 681 ... 682 rn_zqt = 2. ! Air temperature & humidity reference height (m) 683 rn_zu = 10. ! Wind vector reference height (m) 684 ... 685 ln_skin_cs = .true. ! use the cool-skin parameterization 686 ln_skin_wl = .true. ! use the warm-layer parameterization 687 ... 688 ln_humi_dpt = .true. ! humidity "sn_humi" is dew-point temperature [K] 689 ... 690 \end{verbatim} 691 692 Note: when \np{ln_ECMWF}{ln\_ECMWF} is selected, the selection 693 of \np{ln_skin_cs}{ln\_skin\_cs} and \np{ln_skin_wl}{ln\_skin\_wl} implicitely 694 triggers the use of the ECMWF cool-skin and warm-layer parameterizations, 695 respectively (found in \textit{sbcblk\_skin\_ecmwf.F90}). 696 697 698 \subsubsection{Appropriate use of the COARE 3.x algorithms} 699 700 \begin{verbatim} 701 ... 702 ln_COARE3p6 = .true. 703 ... 704 ln_skin_cs = .true. ! use the cool-skin parameterization 705 ln_skin_wl = .true. ! use the warm-layer parameterization 706 ... 707 \end{verbatim} 708 709 Note: when \np{ln_COARE3pX}{ln\_COARE3pX} is selected, the selection 710 of \np{ln_skin_cs}{ln\_skin\_cs} and \np{ln_skin_wl}{ln\_skin\_wl} implicitely 711 triggers the use of the COARE cool-skin and warm-layer parameterizations, 712 respectively (found in \textit{sbcblk\_skin\_coare.F90}). 713 714 653 715 ~ 716 717 654 718 655 719 % In a typical bulk algorithm, the BTCs under neutral stability conditions are … … 662 726 663 727 664 665 666 \subsection{Cool-skin and warm-layer parameterizations} 728 \subsection[Cool-skin and warm-layer parameterizations (\forcode{ln_skin_cs} \& \forcode{ln_skin_wl})]{Cool-skin and warm-layer parameterizations (\protect\np{ln_skin_cs}{ln\_skin\_cs} \& \np{ln_skin_wl}{ln\_skin\_wl})} 729 \label{subsec:SBC_skin} 667 730 668 731 As oposed to the NCAR bulk parameterization, more advanced bulk … … 713 776 Variable description & Model variable & Units & point \\ 714 777 \hline 715 i-component of the 10m air velocity & utau& $m.s^{-1}$ & T \\778 i-component of the 10m air velocity & wndi & $m.s^{-1}$ & T \\ 716 779 \hline 717 j-component of the 10m air velocity & vtau& $m.s^{-1}$ & T \\780 j-component of the 10m air velocity & wndj & $m.s^{-1}$ & T \\ 718 781 \hline 719 782 10m air temperature & tair & $K$ & T \\ … … 761 824 762 825 %% ================================================================================================= 763 \subsection[Ocean-Atmosphere Bulk formulae (\textit{sbcblk\_algo\_coare .F90, sbcblk\_algo\_coare3p6.F90, sbcblk\_algo\_ecmwf.F90, sbcblk\_algo\_ncar.F90})]{Ocean-Atmosphere Bulk formulae (\mdl{sbcblk\_algo\_coare}, \mdl{sbcblk\_algo\_coare3p6}, \mdl{sbcblk\_algo\_ecmwf}, \mdl{sbcblk\_algo\_ncar})}826 \subsection[Ocean-Atmosphere Bulk formulae (\textit{sbcblk\_algo\_coare3p0.F90, sbcblk\_algo\_coare3p6.F90, sbcblk\_algo\_ecmwf.F90, sbcblk\_algo\_ncar.F90})]{Ocean-Atmosphere Bulk formulae (\mdl{sbcblk\_algo\_coare3p0}, \mdl{sbcblk\_algo\_coare3p6}, \mdl{sbcblk\_algo\_ecmwf}, \mdl{sbcblk\_algo\_ncar})} 764 827 \label{subsec:SBC_blk_ocean} 765 828 … … 778 841 \item COARE 3.0 (\np[=.true.]{ln_COARE_3p0}{ln\_COARE\_3p0}): See \citet{fairall.bradley.ea_JC03} for more details 779 842 \item COARE 3.6 (\np[=.true.]{ln_COARE_3p6}{ln\_COARE\_3p6}): See \citet{edson.jampana.ea_JPO13} for more details 780 \item ECMWF (\np[=.true.]{ln_ECMWF}{ln\_ECMWF}): Based on \href{https://www.ecmwf.int/node/9221}{IFS (Cy31)} implementation and documentation. 781 Surface roughness lengths needed for the Obukhov length are computed following \citet{beljaars_QJRMS95}. 843 \item ECMWF (\np[=.true.]{ln_ECMWF}{ln\_ECMWF}): Based on \href{https://www.ecmwf.int/node/9204}{IFS (Cy40r1)} implementation and documentation. 844 Surface roughness lengths needed for the Obukhov length are computed 845 following \citet{beljaars_QJRMS95}. 782 846 \end{itemize} 783 847 -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/BDY/bdydta.F90
r11892 r12031 447 447 ELSE ; ipl = 1 ! xy or xyt 448 448 ENDIF 449 bf(jp_bdya_i,jbdy)%clrootname = 'NOT USED' ! reset to default value as this subdomain may not need to read this bdy 449 450 ENDIF 450 451 ENDIF -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/DYN/dynnxt.F90
r10425 r12031 175 175 IF( neuler == 0 .AND. kt == nit000 ) THEN !* Euler at first time-step: only swap 176 176 DO jk = 1, jpkm1 177 ub(:,:,jk) = un(:,:,jk) ! ub <-- un 178 vb(:,:,jk) = vn(:,:,jk) 177 179 un(:,:,jk) = ua(:,:,jk) ! un <-- ua 178 180 vn(:,:,jk) = va(:,:,jk) -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OFF/nemogcm.F90
r11831 r12031 114 114 #else 115 115 CALL dta_dyn ( istp ) ! Interpolation of the dynamical fields 116 #endif 117 CALL trc_stp ( istp ) ! time-stepping 118 #if ! defined key_sed_off 116 119 IF( .NOT.ln_linssh ) CALL dta_dyn_swp( istp ) ! swap of sea surface height and vertical scale factors 117 120 #endif 118 CALL trc_stp ( istp ) ! time-stepping119 121 CALL stp_ctl ( istp, indic ) ! Time loop: control and print 120 122 istp = istp + 1 -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/TOP/TRP/trcnxt.F90
r10425 r12031 139 139 ENDIF 140 140 ! ! Leap-Frog + Asselin filter time stepping 141 IF( (neuler == 0 .AND. kt == nittrc000) .OR. ln_top_euler ) THEN ! Euler time-stepping (only swap) 141 IF( (neuler == 0 .AND. kt == nittrc000) ) THEN 142 ! set up for leapfrog on second timestep 143 DO jn = 1, jptra 144 DO jk = 1, jpkm1 145 trb(:,:,jk,jn) = trn(:,:,jk,jn) 146 trn(:,:,jk,jn) = tra(:,:,jk,jn) 147 END DO 148 END DO 149 ELSE IF( ln_top_euler ) THEN 150 ! always doing euler timestepping 142 151 DO jn = 1, jptra 143 152 DO jk = 1, jpkm1 … … 146 155 END DO 147 156 END DO 157 ENDIF 158 IF( (neuler == 0 .AND. kt == nittrc000) .OR. ln_top_euler ) THEN ! Euler time-stepping (only swap) 148 159 IF (l_trdtrc .AND. .NOT. ln_linssh ) THEN ! Zero Asselin filter contribution must be explicitly written out since for vvl 149 160 ! ! Asselin filter is output by tra_nxt_vvl that is not called on this time step -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/EXPREF/plot_station_asf.py
r11996 r12031 28 28 cy1 = '2016' ; # First year 29 29 cy2 = '2018' ; # Last year 30 31 jt0 = 0 32 jt0 = 17519 33 30 34 31 35 dir_figs='.' … … 100 104 # Getting time array from the first file: 101 105 id_in = Dataset(cf_in[0]) 102 vt = id_in.variables['time_counter'][ :]106 vt = id_in.variables['time_counter'][jt0:] 103 107 cunit_t = id_in.variables['time_counter'].units ; print(' "time_counter" is in "'+cunit_t+'"') 104 108 id_in.close() … … 110 114 vtime = nmp.zeros(nbr) 111 115 112 vt = vt + 1036800. # BUG!??? don't get why false in epoch to date conversion, and yet ncview gets it right!116 vt = vt + 1036800. + 30.*60. # BUG!??? don't get why false in epoch to date conversion, and yet ncview gets it right! 113 117 for jt in range(nbr): vtime[jt] = mdates.epoch2num(vt[jt]) 114 118 … … 134 138 if ctest == 'skin': id_in = Dataset(cf_in[ja]) 135 139 if ctest == 'noskin': id_in = Dataset(cf_in_ns[ja]) 136 xF[:,ja] = id_in.variables[L_VNEM[jv]][ :,1,1] # only the center point of the 3x3 spatial domain!140 xF[:,ja] = id_in.variables[L_VNEM[jv]][jt0:,1,1] # only the center point of the 3x3 spatial domain! 137 141 if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 138 142 id_in.close() … … 207 211 for ja in range(nb_algos-1): 208 212 id_in = Dataset(cf_in[ja]) 209 xF[:,ja] = id_in.variables[L_VNEM[jv]][ :,1,1] # only the center point of the 3x3 spatial domain!213 xF[:,ja] = id_in.variables[L_VNEM[jv]][jt0:,1,1] # only the center point of the 3x3 spatial domain! 210 214 if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 211 215 id_in.close() 212 216 # 213 217 id_in = Dataset(cf_in_ns[ja]) 214 xFns[:,ja] = id_in.variables[L_VNEM[jv]][ :,1,1] # only the center point of the 3x3 spatial domain!218 xFns[:,ja] = id_in.variables[L_VNEM[jv]][jt0:,1,1] # only the center point of the 3x3 spatial domain! 215 219 if ja == 0: cvar_lnm = id_in.variables[L_VNEM[jv]].long_name 216 220 id_in.close() -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/STATION_ASF/README.md
r12019 r12031 6 6 ## Objectives 7 7 8 ```STATION_ASF``` is a demonstration case that mimics an in-situ station (buoy, platform) dedicated to the estimation of surface air-sea fluxes by means of the m ore widely measured traditional meteorological surface parameters (sea and atmosphere).8 ```STATION_ASF``` is a demonstration case that mimics an in-situ station (buoy, platform) dedicated to the estimation of surface air-sea fluxes by means of the measurement of traditional meteorological surface parameters. 9 9 10 10 ```STATION_ASF``` is based on the merging of the "single column" and the "standalone surface module" configurations of NEMO. In short, it coulb defined as "SAS meets C1D". As such, the spatial domain of ```STATION_ASF``` is punctual (1D, well actually 3 x 3 as in C1D).
Note: See TracChangeset
for help on using the changeset viewer.