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 2990 for branches/2011/dev_r2855_INGV2_3_blk_wave – NEMO

Ignore:
Timestamp:
2011-10-25T15:39:07+02:00 (12 years ago)
Author:
poddo
Message:

Development DEV2011_INGV2_bulk ECMWF bulk formulae
merged with
Development DEV2011_INGV3_wave Interface to read neutral drag coefficient from wave model

Location:
branches/2011/dev_r2855_INGV2_3_blk_wave
Files:
3 added
12 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2855_INGV2_3_blk_wave/DOC/TexFiles/Biblio/Biblio.bib

    r2541 r2990  
    355355} 
    356356 
     357@ARTICLE{Bignami_al_JGR95, 
     358  author = {F. Bignami and S. Marullo and R. Santoleri and M. E. Schiano}, 
     359  title = {Longwave radiation budget in the Mediterranean Sea},  
     360  journal = JGR, 
     361  year = {1995}, 
     362  volume = {100},  number = {C2}, 
     363  pages = {2501--2514}, 
     364  doi = {10.1029/94JC02496}, 
     365} 
     366 
    357367@ARTICLE{Blanke_al_JPO99, 
    358368  author = {B. Blanke and M. Arhan and G. Madec and S. Roche}, 
     
    590600  doi = {10.1029/2002GL016473}, 
    591601  url = {http://dx.doi.org/10.1029/2002GL016473} 
     602} 
     603 
     604@ARTICLE{Castellari_al_JMS1998, 
     605  author = {S> Castellari and  N. Pinardi and K. Leaman }, 
     606  title = {A model study of air-sea interactions in the Mediterranean Sea.}, 
     607  journal = JMS, 
     608  year = {1998}, 
     609  volume = {18}, 
     610  pages = {89--114} 
    592611} 
    593612 
     
    12471266} 
    12481267 
     1268@ARTICLE{Hellerman_Rosenstein_JPO83, 
     1269  author = {S. Hellerman and  M. Rosenstein }, 
     1270  title = {Normal monthly wind stress over the world ocean with error estimates}, 
     1271  journal = JPO, 
     1272  year = {1983}, 
     1273  volume = {13}, 
     1274  pages = {1093--1104}, 
     1275} 
     1276 
    12491277@ARTICLE{He_Ding_JSC01, 
    12501278  author = {Y. He and C. H. Q. Ding}, 
     
    15111539  volume = {6}, 
    15121540  pages = {56--58} 
     1541} 
     1542@ARTICLE{Kondo1975, 
     1543  author = {J. Kondo}, 
     1544  title = {Air-sea bulk transfer coefficients in diabatic conditions}, 
     1545  journal = {Boundary-Layer Meteorol}, 
     1546  year = {1975}, 
     1547  volume = {9}, 
     1548  pages = {91--112} 
     1549} 
     1550 
     1551@ARTICLE{Lermusiaux2001, 
     1552  author = {P. F. J. Lermusiaux}, 
     1553  title = {Evolving the subspace of three-dimensional miltiscale ocean variability: Massachusetts Bay}, 
     1554  journal = JMS, 
     1555  year = {2001}, 
     1556  volume = {29}, 
     1557  pages = {385--422} 
    15131558} 
    15141559 
     
    19061951  volume = {125},  number = {5}, 
    19071952  pages = {958--971} 
     1953} 
     1954 
     1955@ARTICLE{Maggiore_al_PCE98, 
     1956  author = {A. Maggiore and  M. Zavatarelli and M. G. Angelucci and N. Pinardi}, 
     1957  title = {Surface heat and water fluxes in the Adriatic Sea: seasonal and interannual variability}, 
     1958  journal = {Phys Chem Earth}, 
     1959  year = {1998}, 
     1960  volume = {23}, 
     1961  pages = {561--567} 
    19081962} 
    19091963 
     
    21152169} 
    21162170 
     2171@ARTICLE{Oddo_al_OS09, 
     2172  author = {P. Oddo and M. Adani and N. Pinardi and C. Fratianni and M. Tonani and D. Pettenuzzo}, 
     2173  title = {A nested Atlantic-Mediterranean Sea general circulation model for operational forecasting}, 
     2174  journal = OS, 
     2175  year = {2009}, 
     2176  volume = {5}, 
     2177  pages = {1--13}, 
     2178} 
     2179 
    21172180@PHDTHESIS{Olivier_PhD01, 
    21182181  author = {F. Olivier}, 
     
    21702233} 
    21712234 
     2235@ARTICLE{Payne_JAS72, 
     2236  author = {R. E. Payne}, 
     2237  title = {Albedo of the Sea Surface}, 
     2238  journal = JAS, 
     2239  year = {1972}, 
     2240  volume = {29} 
     2241  pages = {959--970} 
     2242} 
     2243 
    21722244@ARTICLE{Penduff_al_OM06, 
    21732245  author = {T. Penduff and B. Barnier and J.-M. Molines and G. Madec}, 
     
    22342306  volume = {13}, 
    22352307  pages = {1154--1158} 
     2308} 
     2309 
     2310@ARTICLE{Reed_JPO77, 
     2311  author = {R. K. Reed}, 
     2312  title = {On estimating insolation over the ocean}, 
     2313  journal = JPO, 
     2314  year = {1977}, 
     2315  volume = {1}, 
     2316  pages = {874--971} 
    22362317} 
    22372318 
     
    25022583  volume = {8}, 
    25032584  pages = {175--201} 
     2585} 
     2586 
     2587@ARTICLE{Tonani_al_OS08, 
     2588  author = {M. Tonani and N. Pinardi and S. Dobricic and I. Pujol and C. Fratianni}, 
     2589  title = {A high-resolution free-surface model of the Mediterranean Sea}, 
     2590  journal = OS, 
     2591  year = {2008}, 
     2592  volume = {4}, 
     2593  pages = {1--14} 
    25042594} 
    25052595 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/DOC/TexFiles/Chapters/Chap_SBC.tex

    r2541 r2990  
    2424\end{itemize} 
    2525 
    26 Four different ways to provide the first six fields to the ocean are available which  
     26Five different ways to provide the first six fields to the ocean are available which  
    2727are controlled by namelist variables: an analytical formulation (\np{ln\_ana}~=~true),  
    2828a flux formulation (\np{ln\_flx}~=~true), a bulk formulae formulation (CORE  
    29 (\np{ln\_core}~=~true) or CLIO (\np{ln\_clio}~=~true) bulk formulae) and a coupled  
     29(\np{ln\_core}~=~true), CLIO (\np{ln\_clio}~=~true) or MFS 
     30\footnote { Note that MFS bulk formulae compute fluxes only for the ocean component} 
     31(\np{ln\_ecmwf}~=~true) bulk formulae) and a coupled  
    3032formulation (exchanges with a atmospheric model via the OASIS coupler)  
    3133(\np{ln\_cpl}~=~true). When used, the atmospheric pressure forces both  
    32 ocean and ice dynamics (\np{ln\_apr\_dyn}~=~true) 
    33 \footnote{The surface pressure field could be use in bulk formulae, nevertheless  
    34 none of the current bulk formulea (CLIO and CORE) uses the it.}.  
     34ocean and ice dynamics (\np{ln\_apr\_dyn}~=~true). 
    3535The frequency at which the six or seven fields have to be updated is the \np{nn\_fsbc}  
    3636namelist parameter.  
     
    4646(\np{nn\_ice}~=~0,1, 2 or 3); the addition of river runoffs as surface freshwater  
    4747fluxes or lateral inflow (\np{ln\_rnf}~=~true); the addition of a freshwater flux adjustment  
    48 in order to avoid a mean sea-level drift (\np{nn\_fwb}~=~0,~1~or~2); and the  
     48in order to avoid a mean sea-level drift (\np{nn\_fwb}~=~0,~1~or~2); the  
    4949transformation of the solar radiation (if provided as daily mean) into a diurnal  
    50 cycle (\np{ln\_dm2dc}~=~true). 
     50cycle (\np{ln\_dm2dc}~=~true); and a neutral drag coefficient can be read from an external wave  
     51model(\np{ln\_cdgw}~=~true). The latter option is possible only in case core or ecmwf bulk formulas are selected. 
    5152 
    5253In this chapter, we first discuss where the surface boundary condition appears in the 
    53 model equations. Then we present the four ways of providing the surface boundary condition,  
     54model equations. Then we present the five ways of providing the surface boundary condition,  
    5455followed by the description of the atmospheric pressure and the river runoff.  
    5556Next the scheme for interpolation on the fly is described. 
     
    480481% Bulk formulation 
    481482% ================================================================ 
    482 \section  [Bulk formulation (\textit{sbcblk\_core} or \textit{sbcblk\_clio}) ] 
    483       {Bulk formulation \small{(\mdl{sbcblk\_core} or \mdl{sbcblk\_clio} module)} } 
     483\section  [Bulk formulation (\textit{sbcblk\_core}, \textit{sbcblk\_clio} or \textit{sbcblk\_ecmwf}) ] 
     484      {Bulk formulation \small{(\mdl{sbcblk\_core} \mdl{sbcblk\_clio} \mdl{sbcblk\_ecmwf} modules)} } 
    484485\label{SBC_blk} 
    485486 
     
    487488using bulk formulae and atmospheric fields and ocean (and ice) variables.  
    488489 
    489 The atmospheric fields used depend on the bulk formulae used. Two bulk formulations  
    490 are available : the CORE and CLIO bulk formulea. The choice is made by setting to true 
    491 one of the following namelist variable : \np{ln\_core} and \np{ln\_clio}. 
    492  
    493 Note : in forced mode, when a sea-ice model is used, a bulk formulation have to be used.  
    494 Therefore the two bulk formulea provided include the computation of the fluxes over both  
     490The atmospheric fields used depend on the bulk formulae used. Three bulk formulations  
     491are available : the CORE, the CLIO and the MFS bulk formulea. The choice is made by setting to true 
     492one of the following namelist variable : \np{ln\_core} ; \np{ln\_clio} or  \np{ln\_ecmwf}. 
     493 
     494Note : in forced mode, when a sea-ice model is used, a bulk formulation (CLIO or CORE) have to be used.  
     495Therefore the two bulk (CLIO and CORE) formulea include the computation of the fluxes over both  
    495496an ocean and an ice surface.  
    496497 
     
    583584namelist (see \S\ref{SBC_fldread}).  
    584585 
     586% ------------------------------------------------------------------------------------------------------------- 
     587%        ECMWF Bulk formulea 
     588% ------------------------------------------------------------------------------------------------------------- 
     589\subsection    [MFS Bulk formulea (\np{ln\_ecmwf}=true)] 
     590            {MFS Bulk formulea (\np{ln\_ecmwf}=true, \mdl{sbcblk\_ecmwf})} 
     591\label{SBC_blk_ecmwf} 
     592%------------------------------------------namsbc_ecmwf---------------------------------------------------- 
     593\namdisplay{namsbc_ecmwf}  
     594%---------------------------------------------------------------------------------------------------------- 
     595 
     596The MFS (Mediterranean Forecasting System) bulk formulae have been developed by 
     597 \citet{Castellari_al_JMS1998}.  
     598They have been designed to handle the ECMWF operational data and are currently  
     599in use in the MFS operational system \citep{Tonani_al_OS08}, \citep{Oddo_al_OS09}. 
     600The wind stress computation uses a drag coefficient computed according to \citet{Hellerman_Rosenstein_JPO83}. 
     601The surface boundary condition for temperature involves the balance between surface solar radiation, 
     602net long-wave radiation, the latent and sensible heat fluxes. 
     603Solar radiation is dependent on cloud cover and is computed by means of 
     604an astronomical formula \citep{Reed_JPO77}. Albedo monthly values are from \citet{Payne_JAS72}  
     605as means of the values at $40^{o}N$ and $30^{o}N$ for the Atlantic Ocean (hence the same latitudinal 
     606band of the Mediterranean Sea). The net long-wave radiation flux 
     607\citep{Bignami_al_JGR95} is a function of 
     608air temperature, sea-surface temperature, cloud cover and relative humidity. 
     609Sensible heat and latent heat fluxes are computed by classical 
     610bulk formulae parameterized according to \citet{Kondo1975}. 
     611Details on the bulk formulae used can be found in \citet{Maggiore_al_PCE98} and \citet{Castellari_al_JMS1998}. 
     612 
     613The required 7 input fields must be provided on the model Grid-T and  are: 
     614\begin{itemize} 
     615\item          Zonal Component of the 10m wind ($ms^{-1}$)  (\np{sn\_windi}) 
     616\item          Meridional Component of the 10m wind ($ms^{-1}$)  (\np{sn\_windj}) 
     617\item          Total Claud Cover (\%)  (\np{sn\_clc}) 
     618\item          2m Air Temperature ($K$) (\np{sn\_tair}) 
     619\item          2m Dew Point Temperature ($K$)  (\np{sn\_rhm}) 
     620\item          Total Precipitation ${Kg} m^{-2} s^{-1}$ (\np{sn\_prec}) 
     621\item          Mean Sea Level Pressure (${Pa}) (\np{sn\_msl}) 
     622\end{itemize} 
     623% ------------------------------------------------------------------------------------------------------------- 
    585624% ================================================================ 
    586625% Coupled formulation 
     
    938977\end{description} 
    939978 
     979% ------------------------------------------------------------------------------------------------------------- 
     980%        Neutral Drag Coefficient from external wave model 
     981% ------------------------------------------------------------------------------------------------------------- 
     982\subsection   [Neutral drag coefficient from external wave model (\textit{sbcwave})] 
     983                        {Neutral drag coefficient from external wave model (\mdl{sbcwave})} 
     984\label{SBC_wave} 
     985%------------------------------------------namwave---------------------------------------------------- 
     986\namdisplay{namsbc_wave} 
     987%------------------------------------------------------------------------------------------------------------- 
     988\begin{description} 
     989If (\np{ln\_cdgw}~=~true) in namsbc namelist is activated the \mdl{sbcwave} module which contains the routine \np{sbc\_wave}.This routine reads the namelist namsbc\_wave and the neutral drag coefficient. Then using the routine TURB\_CORE\_1Z or TURB\_CORE\_2Z the drag coefficient is computed according to stable/unstable conditions of the air-sea interface starting from the neutral drag coefficient. 
     990\end{description} 
     991 
    940992% Griffies doc: 
    941993% When running ocean-ice simulations, we are not explicitly representing land processes, such as rivers, catchment areas, snow accumulation, etc. However, to reduce model drift, it is important to balance the hydrological cycle in ocean-ice models. We thus need to prescribe some form of global normalization to the precipitation minus evaporation plus river runoff. The result of the normalization should be a global integrated zero net water input to the ocean-ice system over a chosen time scale.  
     
    944996 
    945997 
    946  
  • branches/2011/dev_r2855_INGV2_3_blk_wave/DOC/TexFiles/Chapters/Chap_ZDF.tex

    r2541 r2990  
    100100$a=5$ and $n=2$. The last three values can be modified by setting the  
    101101\np{rn\_avmri}, \np{rn\_alp} and \np{nn\_ric} namelist parameters, respectively. 
     102 
     103A simple mixing-layer model to transfer and dissipate the atmospheric 
     104 forcings (wind-stress and buoyancy fluxes) can be activated setting  
     105the \np{ln\_mldw} =.true. in the namelist. 
     106 
     107In this case, the local depth of turbulent wind-mixing or "Ekman depth" 
     108 $h_{e}(x,y,t)$ is evaluated and the vertical eddy coefficients prescribed within this layer. 
     109 
     110This depth is assumed proportional to the "depth of frictional influence" that is limited by rotation: 
     111\begin{equation} 
     112         h_{e} = Ek \frac {u^{*}} {f_{0}}    \\ 
     113\end{equation} 
     114where, $Ek$ is an empirical parameter, $u^{*}$ is the friction velocity and $f_{0}$ is the Coriolis  
     115parameter. 
     116 
     117In this similarity height relationship, the turbulent friction velocity: 
     118\begin{equation} 
     119         u^{*} = \sqrt \frac {|\tau|} {\rho_o}     \\ 
     120\end{equation} 
     121 
     122is computed from the wind stress vector $|\tau|$ and the reference dendity $ \rho_o$. 
     123The final $h_{e}$ is further constrained by the adjustable bounds \np{rn\_mldmin} and \np{rn\_mldmax}. 
     124Once $h_{e}$ is computed, the vertical eddy coefficients within $h_{e}$ are set to  
     125the empirical values \np{rn\_wtmix} and \np{rn\_wvmix} \citep{Lermusiaux2001}. 
    102126 
    103127% ------------------------------------------------------------------------------------------------------------- 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/DOC/TexFiles/Namelist/namsbc

    r2540 r2990  
    88   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    99   ln_blk_core = .true.    !  CORE bulk formulation                     (T => fill namsbc_core)  
     10   ln_blk_ecmwf= .false.   !  MFS bulk formulation                      (T => fill namsbc_ecmwf) 
    1011   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
    1112   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
     
    2021                           !     =2 annual global mean of e-p-r set to zero 
    2122                           !     =3 global emp set to zero and spread out over erp area 
     23   ln_cdgw = .true.        ! true if neutral drag coefficient read from wave model 
    2224/ 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/DOC/TexFiles/Namelist/namzdf_ric

    r2540 r2990  
    55   rn_alp      =   5.      !  coefficient of the parameterization 
    66   nn_ric      =   2       !  coefficient of the parameterization 
     7   rn_ekmfc    =   0.7     !  Factor in the Ekman depth Equation 
     8   rn_mldmin   =   1.0     !  minimum allowable mixed-layer depth estimate (m) 
     9   rn_mldmax   =1000.0     !  maximum allowable mixed-layer depth estimate (m) 
     10   rn_wtmix    =  10.0     !  vertical eddy viscosity coeff [m2/s] in the mixed-layer 
     11   rn_wvmix    =  10.0     !  vertical eddy diffusion coeff [m2/s] in the mixed-layer 
     12   ln_mldw     = .true.    !  Flag to use or not the mized layer depth param. 
    713/ 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/CONFIG/GYRE/EXP00/namelist

    r2715 r2990  
    138138   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    139139   ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core)  
     140   ln_blk_ecmwf= .false.   !  MFS bulk formulation                      (T => fill namsbc_ecmwf) 
    140141   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
    141142   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
     
    150151                           !     =2 annual global mean of e-p-r set to zero 
    151152                           !     =3 global emp set to zero and spread out over erp area 
     153   ln_cdgw = .false.       !  Neutral drag coefficient read from wave model (T => fill namsbc_wave) 
    152154/ 
    153155!----------------------------------------------------------------------- 
     
    208210   ln_taudif   = .false.   !  HF tau contribution: use "mean of stress module - module of the mean stress" data 
    209211   rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow) 
     212/ 
     213!----------------------------------------------------------------------- 
     214&namsbc_ecmwf   !   namsbc_ecmwf  MFS bulk formulea 
     215!----------------------------------------------------------------------- 
     216!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     217!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     218   sn_wndi     =   'ecmwf'   ,        6          , 'u10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     219   sn_wndj     =   'ecmwf'   ,        6          , 'v10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     220   sn_clc      =   'ecmwf'   ,        6          , 'clc'     ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     221   sn_msl      =   'ecmwf'   ,        6          , 'msl'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     222   sn_tair     =   'ecmwf'   ,        6          , 't2'      ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     223   sn_rhm      =   'ecmwf'   ,        6          , 'rh'      ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     224   sn_prec     =   'ecmwf'   ,        6          , 'precip'  ,    .true.    , .true.  , 'daily'  ,'bicubic.nc' , '' 
     225 
     226   cn_dir      = './ECMWF/'      !  root directory for the location of the bulk files 
    210227/ 
    211228!----------------------------------------------------------------------- 
     
    863880    salfixmin = -9999      !  Minimum salinity after applying the increments 
    864881/ 
     882!----------------------------------------------------------------------- 
     883&namsbc_wave   ! External fields from wave model 
     884!----------------------------------------------------------------------- 
     885!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     886!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     887   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     888! 
     889   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     890/ 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist

    r2715 r2990  
    138138   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    139139   ln_blk_core = .true.    !  CORE bulk formulation                     (T => fill namsbc_core)  
     140   ln_blk_ecmwf= .false.   !  MFS bulk formulation                      (T => fill namsbc_ecmwf) 
    140141   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
    141142   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
     
    150151                           !     =2 annual global mean of e-p-r set to zero 
    151152                           !     =3 global emp set to zero and spread out over erp area 
     153   ln_cdgw = .false.       !  Neutral drag coefficient read from wave model (T => fill namsbc_wave) 
    152154/ 
    153155!----------------------------------------------------------------------- 
     
    208210   ln_taudif   = .false.   !  HF tau contribution: use "mean of stress module - module of the mean stress" data 
    209211   rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow) 
     212/ 
     213!----------------------------------------------------------------------- 
     214&namsbc_ecmwf   !   namsbc_ecmwf  MFS bulk formulea 
     215!----------------------------------------------------------------------- 
     216!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     217!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     218   sn_wndi     =   'ecmwf'   ,        6          , 'u10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     219   sn_wndj     =   'ecmwf'   ,        6          , 'v10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     220   sn_clc      =   'ecmwf'   ,        6          , 'clc'     ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     221   sn_msl      =   'ecmwf'   ,        6          , 'msl'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     222   sn_tair     =   'ecmwf'   ,        6          , 't2'      ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     223   sn_rhm      =   'ecmwf'   ,        6          , 'rh'      ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     224   sn_prec     =   'ecmwf'   ,        6          , 'precip'  ,    .true.    , .true.  , 'daily'  ,'bicubic.nc' , '' 
     225 
     226   cn_dir      = './ECMWF/'      !  root directory for the location of the bulk files 
    210227/ 
    211228!----------------------------------------------------------------------- 
     
    863880    salfixmin = -9999      !  Minimum salinity after applying the increments 
    864881/ 
     882!----------------------------------------------------------------------- 
     883&namsbc_wave   ! External fields from wave model 
     884!----------------------------------------------------------------------- 
     885!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     886!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     887   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     888! 
     889   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     890/ 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist

    r2715 r2990  
    138138   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    139139   ln_blk_core = .true.    !  CORE bulk formulation                     (T => fill namsbc_core)  
     140   ln_blk_ecmwf= .false.   !  MFS bulk formulation                      (T => fill namsbc_ecmwf) 
    140141   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
    141142   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
     
    150151                           !     =2 annual global mean of e-p-r set to zero 
    151152                           !     =3 global emp set to zero and spread out over erp area 
     153   ln_cdgw = .false.       !  Neutral drag coefficient read from wave model (T => fill namsbc_wave ) 
    152154/ 
    153155!----------------------------------------------------------------------- 
     
    208210   ln_taudif   = .false.   !  HF tau contribution: use "mean of stress module - module of the mean stress" data ? 
    209211   rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow) 
     212/ 
     213!----------------------------------------------------------------------- 
     214&namsbc_ecmwf   !   namsbc_ecmwf  MFS bulk formulea 
     215!----------------------------------------------------------------------- 
     216!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     217!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     218   sn_wndi     =   'ecmwf'   ,        6          , 'u10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     219   sn_wndj     =   'ecmwf'   ,        6          , 'v10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     220   sn_clc      =   'ecmwf'   ,        6          , 'clc'     ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     221   sn_msl      =   'ecmwf'   ,        6          , 'msl'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     222   sn_tair     =   'ecmwf'   ,        6          , 't2'      ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     223   sn_rhm      =   'ecmwf'   ,        6          , 'rh'      ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     224   sn_prec     =   'ecmwf'   ,        6          , 'precip'  ,    .true.    , .true.  , 'daily'  ,'bicubic.nc' , '' 
     225 
     226   cn_dir      = './ECMWF/'      !  root directory for the location of the bulk files 
    210227/ 
    211228!----------------------------------------------------------------------- 
     
    878895    salfixmin = -9999      !  Minimum salinity after applying the increments 
    879896/ 
     897!----------------------------------------------------------------------- 
     898&namsbc_wave   ! External fields from wave model 
     899!----------------------------------------------------------------------- 
     900!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     901!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     902   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     903! 
     904   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     905/ 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/CONFIG/POMME/EXP00/namelist

    r2650 r2990  
    138138   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    139139   ln_blk_core = .true.    !  CORE bulk formulation                     (T => fill namsbc_core)  
     140   ln_blk_ecmwf= .false.   !  MFS bulk formulation                      (T => fill namsbc_ecmwf) 
    140141   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
    141142   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
     
    150151                           !     =2 annual global mean of e-p-r set to zero 
    151152                           !     =3 global emp set to zero and spread out over erp area 
     153   ln_cdgw = .false.       !  Neutral drag coefficient read from wave model (T => fill namsbc_wave) 
    152154/ 
    153155!----------------------------------------------------------------------- 
     
    208210   ln_taudif   = .false.   !  HF tau contribution: use "mean of stress module - module of the mean stress" data 
    209211   rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow) 
     212/ 
     213!----------------------------------------------------------------------- 
     214&namsbc_ecmwf   !   namsbc_ecmwf  MFS bulk formulea 
     215!----------------------------------------------------------------------- 
     216!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     217!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     218   sn_wndi     =   'ecmwf'   ,        6          , 'u10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     219   sn_wndj     =   'ecmwf'   ,        6          , 'v10'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     220   sn_clc      =   'ecmwf'   ,        6          , 'clc'     ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     221   sn_msl      =   'ecmwf'   ,        6          , 'msl'     ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     222   sn_tair     =   'ecmwf'   ,        6          , 't2'      ,    .true.    , .false. , 'daily'  ,'bicubic.nc' , '' 
     223   sn_rhm      =   'ecmwf'   ,        6          , 'rh'      ,    .true.    , .false. , 'daily'  ,'bilinear.nc', '' 
     224   sn_prec     =   'ecmwf'   ,        6          , 'precip'  ,    .true.    , .true.  , 'daily'  ,'bicubic.nc' , '' 
     225 
     226   cn_dir      = './ECMWF/'      !  root directory for the location of the bulk files 
    210227/ 
    211228!----------------------------------------------------------------------- 
     
    868885    salfixmin = -9999      !  Minimum salinity after applying the increments 
    869886/ 
     887!----------------------------------------------------------------------- 
     888&namsbc_wave   ! External fields from wave model 
     889!----------------------------------------------------------------------- 
     890!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     891!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     892   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     893! 
     894   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     895/ 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r2715 r2990  
    3333   LOGICAL , PUBLIC ::   ln_blk_clio = .FALSE.   !: CLIO bulk formulation 
    3434   LOGICAL , PUBLIC ::   ln_blk_core = .FALSE.   !: CORE bulk formulation 
     35   LOGICAL , PUBLIC ::   ln_blk_ecmwf= .FALSE.   !: MFS  bulk formulation 
    3536   LOGICAL , PUBLIC ::   ln_cpl      = .FALSE.   !: coupled   formulation (overwritten by key_sbc_coupled ) 
    3637   LOGICAL , PUBLIC ::   ln_dm2dc    = .FALSE.   !: Daily mean to Diurnal Cycle short wave (qsr) 
     
    4344   !                                             !:  = 1 global mean of e-p-r set to zero at each nn_fsbc time step 
    4445   !                                             !:  = 2 annual global mean of e-p-r set to zero 
     46   LOGICAL , PUBLIC ::   ln_cdgw     = .FALSE.   !: true if neutral drag coefficient read from wave model 
    4547 
    4648   !!---------------------------------------------------------------------- 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r2777 r2990  
    3434   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3535   USE prtctl          ! Print control 
     36   USE sbcwave,ONLY :  cdn_wave !wave module  
    3637#if defined key_lim3 
    3738   USE sbc_ice         ! Surface boundary condition: ice fields 
     
    4344   PUBLIC   sbc_blk_core         ! routine called in sbcmod module 
    4445   PUBLIC   blk_ice_core         ! routine called in sbc_ice_lim module 
     46   PUBLIC   turb_core_2z         ! routine calles in sbcblk_ecmwf module 
    4547 
    4648   INTEGER , PARAMETER ::   jpfld   = 9           ! maximum number of files to read  
     
    682684      !! Neutral Drag Coefficient 
    683685      stab    = 0.5 + sign(0.5,dT)    ! stable : stab = 1 ; unstable : stab = 0  
    684       Cd_n10  = 1E-3 * ( 2.7/dU10 + 0.142 + dU10/13.09 )    !   L & Y eq. (6a) 
     686      IF  ( ln_cdgw ) THEN 
     687        cdn_wave = cdn_wave - rsmall*(tmask(:,:,1)-1) 
     688        Cd_n10(:,:) =   cdn_wave 
     689      ELSE 
     690        Cd_n10  = 1E-3 * ( 2.7/dU10 + 0.142 + dU10/13.09 )    !   L & Y eq. (6a) 
     691      ENDIF 
    685692      sqrt_Cd_n10 = sqrt(Cd_n10) 
    686693      Ce_n10  = 1E-3 * ( 34.6 * sqrt_Cd_n10 )               !   L & Y eq. (6b) 
     
    705712         zpsi_m  = psi_m(zeta) 
    706713 
    707          !! Shifting the wind speed to 10m and neutral stability : 
    708          U_n10 = dU10*1./(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) !  L & Y eq. (9a) 
    709  
    710          !! Updating the neutral 10m transfer coefficients : 
    711          Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)              !  L & Y eq. (6a) 
    712          sqrt_Cd_n10 = sqrt(Cd_n10) 
    713          Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                           !  L & Y eq. (6b) 
    714          stab    = 0.5 + sign(0.5,zeta) 
    715          Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab))           !  L & Y eq. (6c), (6d) 
    716  
    717          !! Shifting the neutral  10m transfer coefficients to ( zu , zeta ) : 
    718          !! 
    719          xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10) - zpsi_m) 
    720          Cd  = Cd_n10/(xct*xct) ;  sqrt_Cd = sqrt(Cd) 
     714         IF  ( ln_cdgw ) THEN 
     715           sqrt_Cd=kappa/((kappa/sqrt_Cd_n10) - zpsi_m) ; Cd=sqrt_Cd*sqrt_Cd; 
     716         ELSE 
     717           !! Shifting the wind speed to 10m and neutral stability : 
     718           U_n10 = dU10*1./(1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m)) !  L & Y eq. (9a) 
     719 
     720           !! Updating the neutral 10m transfer coefficients : 
     721           Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)              !  L & Y eq. (6a) 
     722           sqrt_Cd_n10 = sqrt(Cd_n10) 
     723           Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                           !  L & Y eq. (6b) 
     724           stab    = 0.5 + sign(0.5,zeta) 
     725           Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab))           !  L & Y eq. (6c), (6d) 
     726 
     727           !! Shifting the neutral  10m transfer coefficients to ( zu , zeta ) : 
     728           !! 
     729           xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10) - zpsi_m) 
     730           Cd  = Cd_n10/(xct*xct) ;  sqrt_Cd = sqrt(Cd) 
     731         ENDIF 
    721732         !! 
    722733         xlogt = log(zu/10.) - zpsi_h 
     
    812823      !! Neutral Drag Coefficient : 
    813824      stab = 0.5 + sign(0.5,dT)                 ! stab = 1  if dT > 0  -> STABLE 
    814       Cd_n10  = 1E-3*( 2.7/dU10 + 0.142 + dU10/13.09 )  
     825      IF  ( ln_cdgw ) THEN 
     826        cdn_wave = cdn_wave - rsmall*(tmask(:,:,1)-1) 
     827        Cd_n10(:,:) =   cdn_wave 
     828      ELSE 
     829        Cd_n10  = 1E-3*( 2.7/dU10 + 0.142 + dU10/13.09 )  
     830      ENDIF 
    815831      sqrt_Cd_n10 = sqrt(Cd_n10) 
    816832      Ce_n10  = 1E-3*( 34.6 * sqrt_Cd_n10 ) 
     
    853869         stab = 0.5 + sign(0.5,q_zu) ;  q_zu = stab*q_zu 
    854870         !! 
    855          !! Updating the neutral 10m transfer coefficients : 
    856          Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)    ! L & Y eq. (6a) 
    857          sqrt_Cd_n10 = sqrt(Cd_n10) 
    858          Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                 ! L & Y eq. (6b) 
    859          stab    = 0.5 + sign(0.5,zeta_u) 
    860          Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab)) ! L & Y eq. (6c-6d) 
    861          !! 
    862          !! 
    863          !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) : 
    864 !        xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - psi_m(zeta_u)) 
    865          xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) 
    866          Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd) 
    867          !! 
    868 !        xlogt = log(zu/10.) - psi_h(zeta_u) 
     871         IF  ( ln_cdgw ) THEN 
     872            sqrt_Cd=kappa/((kappa/sqrt_Cd_n10) - zpsi_m) ; Cd=sqrt_Cd*sqrt_Cd; 
     873         ELSE 
     874           !! Updating the neutral 10m transfer coefficients : 
     875           Cd_n10  = 1E-3 * (2.7/U_n10 + 0.142 + U_n10/13.09)    ! L & Y eq. (6a) 
     876           sqrt_Cd_n10 = sqrt(Cd_n10) 
     877           Ce_n10  = 1E-3 * (34.6 * sqrt_Cd_n10)                 ! L & Y eq. (6b) 
     878           stab    = 0.5 + sign(0.5,zeta_u) 
     879           Ch_n10  = 1E-3*sqrt_Cd_n10*(18.*stab + 32.7*(1-stab)) ! L & Y eq. (6c-6d) 
     880           !! 
     881           !! 
     882           !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) : 
     883           xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) 
     884           Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd) 
     885         ENDIF 
     886         !! 
    869887         xlogt = log(zu/10.) - zpsi_hu 
    870888         !! 
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r2715 r2990  
    2929   USE sbcblk_clio      ! surface boundary condition: bulk formulation : CLIO 
    3030   USE sbcblk_core      ! surface boundary condition: bulk formulation : CORE 
     31   USE sbcblk_ecmwf     ! surface boundary condition: bulk formulation : MFS 
    3132   USE sbcice_if        ! surface boundary condition: ice-if sea-ice model 
    3233   USE sbcice_lim       ! surface boundary condition: LIM 3.0 sea-ice model 
     
    4647   USE in_out_manager   ! I/O manager 
    4748   USE lib_mpp          ! MPP library 
     49   USE sbcwave          ! Wave module 
    4850 
    4951   IMPLICIT NONE 
     
    7880      !! 
    7981      NAMELIST/namsbc/ nn_fsbc   , ln_ana , ln_flx  , ln_blk_clio, ln_blk_core, ln_cpl,   & 
    80          &             ln_apr_dyn, nn_ice , ln_dm2dc, ln_rnf     , ln_ssr     , nn_fwb 
     82         &             ln_blk_ecmwf, ln_apr_dyn, nn_ice , ln_dm2dc, ln_rnf, ln_ssr     , nn_fwb, ln_cdgw 
    8183      !!---------------------------------------------------------------------- 
    8284 
     
    107109         WRITE(numout,*) '              flux       formulation                     ln_flx      = ', ln_flx 
    108110         WRITE(numout,*) '              CLIO bulk  formulation                     ln_blk_clio = ', ln_blk_clio 
    109          WRITE(numout,*) '              CLIO bulk  formulation                     ln_blk_core = ', ln_blk_core 
     111         WRITE(numout,*) '              CORE bulk  formulation                     ln_blk_core = ', ln_blk_core 
     112         WRITE(numout,*) '              MFS  bulk  formulation                     ln_blk_ecmwf= ', ln_blk_ecmwf 
    110113         WRITE(numout,*) '              coupled    formulation (T if key_sbc_cpl)  ln_cpl      = ', ln_cpl 
    111114         WRITE(numout,*) '           Misc. options of sbc : ' 
     
    154157      IF( ln_dm2dc .AND. ( ( NINT(rday) / ( nn_fsbc * NINT(rdt) ) )  < 8 ) )   & 
    155158         &   CALL ctl_warn( 'diurnal cycle for qsr: the sampling of the diurnal cycle is too small...' ) 
     159 
     160       !drag coefficient read from wave model definable only with ecmwf bulk formulae and core  
     161       IF(ln_cdgw .AND. .NOT.(ln_blk_ecmwf .OR. ln_blk_core) )              & 
     162          &   CALL ctl_stop( 'drag coefficient read from wave model definable only with ecmwf bulk formulae and core') 
    156163       
    157164      !                          ! Choice of the Surface Boudary Condition (set nsbc) 
     
    161168      IF( ln_blk_clio     ) THEN   ;   nsbc =  3   ; icpt = icpt + 1   ;   ENDIF       ! CLIO bulk       formulation 
    162169      IF( ln_blk_core     ) THEN   ;   nsbc =  4   ; icpt = icpt + 1   ;   ENDIF       ! CORE bulk       formulation 
     170      IF( ln_blk_ecmwf    ) THEN   ;   nsbc =  6   ; icpt = icpt + 1   ;   ENDIF       ! MFS  bulk       formulation 
    163171      IF( ln_cpl          ) THEN   ;   nsbc =  5   ; icpt = icpt + 1   ;   ENDIF       ! Coupled         formulation 
    164172      IF( cp_cfg == 'gyre') THEN   ;   nsbc =  0                       ;   ENDIF       ! GYRE analytical formulation 
     
    181189         IF( nsbc ==  4 )   WRITE(numout,*) '              CORE bulk formulation' 
    182190         IF( nsbc ==  5 )   WRITE(numout,*) '              coupled formulation' 
     191         IF( nsbc ==  6 )   WRITE(numout,*) '              MFS Bulk formulation' 
    183192      ENDIF 
    184193      ! 
     
    228237      !                                                  ! averaged over nf_sbc time-step 
    229238 
     239      IF (ln_cdgw) CALL sbc_wave( kt ) 
    230240                                                   !==  sbc formulation  ==! 
    231241                                                             
     
    238248      CASE(  4 )   ;   CALL sbc_blk_core( kt )                    ! bulk formulation : CORE for the ocean 
    239249      CASE(  5 )   ;   CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice )   ! coupled formulation 
     250      CASE(  6 )   ;   CALL sbc_blk_ecmwf( kt )                   ! bulk formulation : MFS for the ocean 
    240251      CASE( -1 )                                 
    241252                       CALL sbc_ana     ( kt )                    ! ESOPA, test ALL the formulations 
Note: See TracChangeset for help on using the changeset viewer.