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 3085 – NEMO

Changeset 3085


Ignore:
Timestamp:
2011-11-14T14:13:32+01:00 (12 years ago)
Author:
cbricaud
Message:

commit changes from dev_INGV_2011

Location:
branches/2011/dev_MERCATOR_INGV_2011_MERGE
Files:
15 edited
4 copied

Legend:

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

    r2541 r3085  
    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_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Chapters/Chap_SBC.tex

    r3047 r3085  
    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 
     
    9911030\end{description} 
    9921031 
     1032% ------------------------------------------------------------------------------------------------------------- 
     1033%        Neutral Drag Coefficient from external wave model 
     1034% ------------------------------------------------------------------------------------------------------------- 
     1035\subsection   [Neutral drag coefficient from external wave model (\textit{sbcwave})] 
     1036                        {Neutral drag coefficient from external wave model (\mdl{sbcwave})} 
     1037\label{SBC_wave} 
     1038%------------------------------------------namwave---------------------------------------------------- 
     1039\namdisplay{namsbc_wave} 
     1040%------------------------------------------------------------------------------------------------------------- 
     1041\begin{description} 
     1042 
     1043In order to read a neutral drag coeff, from an external data source (i.e. a wave model), the  
     1044logical variable \np{ln\_cdgw} 
     1045 in $namsbc$ namelist must be defined ${.true.}$.  
     1046The \mdl{sbcwave} module containing the routine \np{sbc\_wave} reads the 
     1047namelist ${namsbc\_wave}$ (for external data names, locations, frequency, interpolation and all  
     1048the miscellanous options allowed by Input Data generic Interface see \S\ref{SBC_input})  
     1049and a 2D field of neutral drag coefficient. Then using the routine  
     1050TURB\_CORE\_1Z or TURB\_CORE\_2Z, and starting from the neutral drag coefficent provided, the drag coefficient is computed according  
     1051to stable/unstable conditions of the air-sea interface following \citet{Large_Yeager_Rep04}. 
     1052 
     1053\end{description} 
     1054 
    9931055% Griffies doc: 
    9941056% 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.  
     
    9971059 
    9981060 
    999  
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Chapters/Chap_ZDF.tex

    r2541 r3085  
    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_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Namelist/namsbc

    r2540 r3085  
    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 = .false.       !  Neutral drag coefficient read from wave model (T => fill namsbc_wave) 
    2224/ 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Namelist/namzdf_ric

    r2540 r3085  
    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_MERCATOR_INGV_2011_MERGE/NEMOGCM/CONFIG/GYRE/EXP00/namelist

    r3055 r3085  
    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!----------------------------------------------------------------------- 
     
    614631   rn_alp      =   5.      !  coefficient of the parameterization 
    615632   nn_ric      =   2       !  coefficient of the parameterization 
     633   rn_ekmfc    =   0.7     !  Factor in the Ekman depth Equation 
     634   rn_mldmin   =   1.0     !  minimum allowable mixed-layer depth estimate (m) 
     635   rn_mldmax   =1000.0     !  maximum allowable mixed-layer depth estimate (m) 
     636   rn_wtmix    =  10.0     !  vertical eddy viscosity coeff [m2/s] in the mixed-layer 
     637   rn_wvmix    =  10.0     !  vertical eddy diffusion coeff [m2/s] in the mixed-layer 
     638   ln_mldw     = .true.    !  Flag to use or not the mized layer depth param. 
    616639/ 
    617640!----------------------------------------------------------------------- 
     
    898921    salfixmin = -9999      !  Minimum salinity after applying the increments 
    899922/ 
     923!----------------------------------------------------------------------- 
     924&namsbc_wave   ! External fields from wave model 
     925!----------------------------------------------------------------------- 
     926!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     927!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     928   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     929! 
     930   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     931/ 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist

    r3055 r3085  
    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!----------------------------------------------------------------------- 
     
    614631   rn_alp      =   5.      !  coefficient of the parameterization 
    615632   nn_ric      =   2       !  coefficient of the parameterization 
     633   rn_ekmfc    =   0.7     !  Factor in the Ekman depth Equation 
     634   rn_mldmin   =   1.0     !  minimum allowable mixed-layer depth estimate (m) 
     635   rn_mldmax   =1000.0     !  maximum allowable mixed-layer depth estimate (m) 
     636   rn_wtmix    =  10.0     !  vertical eddy viscosity coeff [m2/s] in the mixed-layer 
     637   rn_wvmix    =  10.0     !  vertical eddy diffusion coeff [m2/s] in the mixed-layer 
     638   ln_mldw     = .true.    !  Flag to use or not the mized layer depth param. 
    616639/ 
    617640!----------------------------------------------------------------------- 
     
    908931    salfixmin = -9999      !  Minimum salinity after applying the increments 
    909932/ 
     933!----------------------------------------------------------------------- 
     934&namsbc_wave   ! External fields from wave model 
     935!----------------------------------------------------------------------- 
     936!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     937!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     938   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     939! 
     940   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     941/ 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist

    r3055 r3085  
    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!----------------------------------------------------------------------- 
     
    606623   rn_alp      =   5.      !  coefficient of the parameterization 
    607624   nn_ric      =   2       !  coefficient of the parameterization 
     625   rn_ekmfc    =   0.7     !  Factor in the Ekman depth Equation 
     626   rn_mldmin   =   1.0     !  minimum allowable mixed-layer depth estimate (m) 
     627   rn_mldmax   =1000.0     !  maximum allowable mixed-layer depth estimate (m) 
     628   rn_wtmix    =  10.0     !  vertical eddy viscosity coeff [m2/s] in the mixed-layer 
     629   rn_wvmix    =  10.0     !  vertical eddy diffusion coeff [m2/s] in the mixed-layer 
     630   ln_mldw     = .true.    !  Flag to use or not the mized layer depth param. 
    608631/ 
    609632!----------------------------------------------------------------------- 
     
    890913    salfixmin = -9999      !  Minimum salinity after applying the increments 
    891914/ 
     915!----------------------------------------------------------------------- 
     916&namsbc_wave   ! External fields from wave model 
     917!----------------------------------------------------------------------- 
     918!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     919!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     920   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     921! 
     922   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     923/ 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/CONFIG/POMME/EXP00/namelist

    r3055 r3085  
    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!----------------------------------------------------------------------- 
     
    614631   rn_alp      =   5.      !  coefficient of the parameterization 
    615632   nn_ric      =   2       !  coefficient of the parameterization 
     633   rn_ekmfc    =   0.7     !  Factor in the Ekman depth Equation 
     634   rn_mldmin   =   1.0     !  minimum allowable mixed-layer depth estimate (m) 
     635   rn_mldmax   =1000.0     !  maximum allowable mixed-layer depth estimate (m) 
     636   rn_wtmix    =  10.0     !  vertical eddy viscosity coeff [m2/s] in the mixed-layer 
     637   rn_wvmix    =  10.0     !  vertical eddy diffusion coeff [m2/s] in the mixed-layer 
     638   ln_mldw     = .true.    !  Flag to use or not the mized layer depth param. 
    616639/ 
    617640!----------------------------------------------------------------------- 
     
    903926    salfixmin = -9999      !  Minimum salinity after applying the increments 
    904927/ 
     928!----------------------------------------------------------------------- 
     929&namsbc_wave   ! External fields from wave model 
     930!----------------------------------------------------------------------- 
     931!              !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! 
     932!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
     933   sn_cdg      =  'cdg_wave' ,        1          , 'drag_coeff' , .true.   , .false. , 'daily'  ,''         , '' 
     934! 
     935   cn_dir_cdg  = './'  !  root directory for the location of drag coefficient files 
     936/ 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90

    r2730 r3085  
    2323   USE par_ice_2        ! LIM2 parameters 
    2424   USE thd_ice_2        ! LIM2 thermodynamical variables 
    25    USE limrhg           ! LIM2 rheology 
     25   USE limrhg           ! LIM2 EVP rheology 
     26   USE limrhg_2         ! LIM2  VP rheology (requires "key_lim2_vp") 
    2627   USE ice_2            ! LIM2 ice variable 
    2728   USE limmsh_2         ! LIM2 mesh 
     
    6566#if ! defined key_lim2_vp 
    6667      ierr = ierr + lim_rhg_alloc  () 
     68#else 
     69      ierr = ierr + lim_rhg_alloc_2  () 
    6770#endif 
    6871      IF( lk_mpp    )   CALL mpp_sum( ierr ) 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/LIM_SRC_2/limistate_2.F90

    r2528 r3085  
    124124      syyst (:,:)  = 0.e0 
    125125      sxyst (:,:)  = 0.e0 
     126#if ! defined key_lim2_vp 
     127      stress1_i (:,:) = 0._wp                          ! EVP rheology 
     128      stress2_i (:,:) = 0._wp 
     129      stress12_i(:,:) = 0._wp 
     130#endif 
    126131 
    127132      !-- lateral boundary conditions 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r2715 r3085  
    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_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r2777 r3085  
    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_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r2715 r3085  
    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 
  • branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90

    r2715 r3085  
    77   !! History :  OPA  ! 1987-09  (P. Andrich)  Original code 
    88   !!            4.0  ! 1991-11  (G. Madec) 
    9    !!            7.0  ! 1996-01  (G. Madec)  complet rewriting of multitasking suppression of common work arrays 
    10    !!            8.0  ! 1997-06 (G. Madec)  complete rewriting of zdfmix 
     9   !!            7.0  ! 1996-01  (G. Madec)  complete rewriting of multitasking suppression of common work arrays 
     10   !!            8.0  ! 1997-06  (G. Madec)  complete rewriting of zdfmix 
    1111   !!   NEMO     1.0  ! 2002-06  (G. Madec)  F90: Free form and module 
    1212   !!            3.3  ! 2010-10  (C. Ethe, G. Madec) reorganisation of initialisation phase 
     13   !!            3.3.1! 2011-09  (P. Oddo) Mixed layer depth parameterization 
    1314   !!---------------------------------------------------------------------- 
    1415#if defined key_zdfric   ||   defined key_esopa 
     
    2021   !!   zdf_ric_init : initialization, namelist read, & parameters control 
    2122   !!---------------------------------------------------------------------- 
    22    USE oce             ! ocean dynamics and tracers variables 
    23    USE dom_oce         ! ocean space and time domain variables 
    24    USE zdf_oce         ! ocean vertical physics 
    25    USE in_out_manager  ! I/O manager 
    26    USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    27    USE lib_mpp         ! MPP library 
     23   USE oce                   ! ocean dynamics and tracers variables 
     24   USE dom_oce               ! ocean space and time domain variables 
     25   USE zdf_oce               ! ocean vertical physics 
     26   USE in_out_manager        ! I/O manager 
     27   USE lbclnk                ! ocean lateral boundary condition (or mpp link) 
     28   USE lib_mpp               ! MPP library 
     29   USE eosbn2, ONLY : nn_eos 
    2830 
    2931   IMPLICIT NONE 
     
    3941   REAL(wp) ::   rn_avmri = 100.e-4_wp   ! maximum value of the vertical eddy viscosity 
    4042   REAL(wp) ::   rn_alp   =   5._wp      ! coefficient of the parameterization 
     43   REAL(wp) ::   rn_ekmfc =   0.7_wp     ! Ekman Factor Coeff 
     44   REAL(wp) ::   rn_mldmin=   1.0_wp     ! minimum mixed layer (ML) depth     
     45   REAL(wp) ::   rn_mldmax=1000.0_wp     ! maximum mixed layer depth 
     46   REAL(wp) ::   rn_wtmix =  10.0_wp     ! Vertical eddy Diff. in the ML 
     47   REAL(wp) ::   rn_wvmix =  10.0_wp     ! Vertical eddy Visc. in the ML 
     48   LOGICAL  ::   ln_mldw  = .TRUE.       ! Use or not the MLD parameters 
    4149 
    4250   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tmric   !: coef. for the horizontal mean at t-point 
     
    6775      !!                     
    6876      !! ** Purpose :   Compute the before eddy viscosity and diffusivity as 
    69       !!              a function of the local richardson number. 
     77      !!                a function of the local richardson number. 
    7078      !! 
    7179      !! ** Method  :   Local richardson number dependent formulation of the  
    72       !!              vertical eddy viscosity and diffusivity coefficients.  
     80      !!                vertical eddy viscosity and diffusivity coefficients.  
    7381      !!                The eddy coefficients are given by: 
    7482      !!                    avm = avm0 + avmb 
    7583      !!                    avt = avm0 / (1 + rn_alp*ri) 
    76       !!              with ri  = N^2 / dz(u)**2 
    77       !!                       = e3w**2 * rn2/[ mi( dk(ub) )+mj( dk(vb) ) ] 
    78       !!                   avm0= rn_avmri / (1 + rn_alp*ri)**nn_ric 
     84      !!                with ri  = N^2 / dz(u)**2 
     85      !!                         = e3w**2 * rn2/[ mi( dk(ub) )+mj( dk(vb) ) ] 
     86      !!                    avm0= rn_avmri / (1 + rn_alp*ri)**nn_ric 
    7987      !!      Where ri is the before local Richardson number, 
    8088      !!            rn_avmri is the maximum value reaches by avm and avt  
     
    8492      !!      avtb=1.e-7 m2/s, rn_alp=5. and nn_ric=2. 
    8593      !!      a numerical threshold is impose on the vertical shear (1.e-20) 
     94      !!      As second step compute Ekman depth from wind stress forcing 
     95      !!      and apply namelist provided vertical coeff within this depth. 
     96      !!      The Ekman depth is: 
     97      !!              Ustar = SQRT(Taum/rho0) 
     98      !!              ekd= rn_ekmfc * Ustar / f0 
     99      !!      Large et al. (1994, eq.29) suggest rn_ekmfc=0.7; however, the derivation 
     100      !!      of the above equation indicates the value is somewhat arbitrary; therefore 
     101      !!      we allow the freedom to increase or decrease this value, if the 
     102      !!      Ekman depth estimate appears too shallow or too deep, respectively. 
     103      !!      Ekd is then limited by rn_mldmin and rn_mldmax provided in the 
     104      !!      namelist 
    86105      !!        N.B. the mask are required for implicit scheme, and surface 
    87106      !!      and bottom value already set in zdfini.F90 
    88107      !! 
    89108      !! References : Pacanowski & Philander 1981, JPO, 1441-1451. 
     109      !!              PFJ Lermusiaux 2001. 
    90110      !!---------------------------------------------------------------------- 
    91111      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    92       USE wrk_nemo, ONLY:   zwx => wrk_2d_1     ! 2D workspace 
    93       !! 
    94       INTEGER, INTENT( in ) ::   kt         ! ocean time-step indexocean time step 
    95       !! 
    96       INTEGER  ::   ji, jj, jk               ! dummy loop indices 
    97       REAL(wp) ::   zcoef, zdku, zdkv, zri, z05alp     ! temporary scalars 
    98       !!---------------------------------------------------------------------- 
    99  
    100       IF( wrk_in_use(2, 1) ) THEN 
     112      USE wrk_nemo, ONLY:   zwx => wrk_2d_1         ! 2D workspace 
     113      USE wrk_nemo, ONLY:   ekm_dep => wrk_2d_2     ! 2D workspace 
     114      USE phycst,   ONLY:   rsmall,rau0 
     115      USE sbc_oce,  ONLY:   taum 
     116      !! 
     117      INTEGER, INTENT( in ) ::   kt                           ! ocean time-step 
     118      !! 
     119      INTEGER  ::   ji, jj, jk                                ! dummy loop indices 
     120      REAL(wp) ::   zcoef, zdku, zdkv, zri, z05alp, zflageos  ! temporary scalars 
     121      REAL(wp) ::   zrhos, zustar 
     122      !!---------------------------------------------------------------------- 
     123 
     124      IF( wrk_in_use(2, 1,2) ) THEN 
    101125         CALL ctl_stop('zdf_ric : requested workspace array unavailable')   ;   RETURN 
    102126      ENDIF 
     
    145169      !                                                ! =============== 
    146170      ! 
     171      IF( ln_mldw ) THEN 
     172 
     173      !  Compute Ekman depth from wind stress forcing. 
     174      ! ------------------------------------------------------- 
     175      zflageos = ( 0.5 + SIGN( 0.5, nn_eos - 1. ) ) * rau0 
     176      DO jj = 1, jpj 
     177         DO ji = 1, jpi 
     178            zrhos          = rhop(ji,jj,1) + zflageos * ( 1. - tmask(ji,jj,1) ) 
     179            zustar         = SQRT( taum(ji,jj) / ( zrhos +  rsmall ) ) 
     180            ekm_dep(ji,jj) = rn_ekmfc * zustar / ( ABS( ff(ji,jj) ) + rsmall ) 
     181            ekm_dep(ji,jj) = MAX(ekm_dep(ji,jj),rn_mldmin) ! Minimun allowed 
     182            ekm_dep(ji,jj) = MIN(ekm_dep(ji,jj),rn_mldmax) ! Maximum allowed 
     183         END DO 
     184      END DO 
     185 
     186      ! In the first model level vertical diff/visc coeff.s  
     187      ! are always equal to the namelist values rn_wtmix/rn_wvmix 
     188      ! ------------------------------------------------------- 
     189      DO jj = 1, jpj 
     190         DO ji = 1, jpi 
     191            avmv(ji,jj,1) = MAX( avmv(ji,jj,1), rn_wvmix ) 
     192            avmu(ji,jj,1) = MAX( avmu(ji,jj,1), rn_wvmix ) 
     193            avt( ji,jj,1) = MAX(  avt(ji,jj,1), rn_wtmix ) 
     194         END DO 
     195      END DO 
     196 
     197      !  Force the vertical mixing coef within the Ekman depth 
     198      ! ------------------------------------------------------- 
     199      DO jk = 2, jpkm1 
     200         DO jj = 1, jpj 
     201            DO ji = 1, jpi 
     202               IF( fsdept(ji,jj,jk) < ekm_dep(ji,jj) ) THEN 
     203                  avmv(ji,jj,jk) = MAX( avmv(ji,jj,jk), rn_wvmix ) 
     204                  avmu(ji,jj,jk) = MAX( avmu(ji,jj,jk), rn_wvmix ) 
     205                  avt( ji,jj,jk) = MAX(  avt(ji,jj,jk), rn_wtmix ) 
     206               ENDIF 
     207            END DO 
     208         END DO 
     209      END DO 
     210 
     211      DO jk = 1, jpkm1                 
     212         DO jj = 1, jpj 
     213            DO ji = 1, jpi 
     214               avmv(ji,jj,jk) = avmv(ji,jj,jk) * vmask(ji,jj,jk) 
     215               avmu(ji,jj,jk) = avmu(ji,jj,jk) * umask(ji,jj,jk) 
     216               avt( ji,jj,jk) = avt( ji,jj,jk) * tmask(ji,jj,jk) 
     217            END DO 
     218         END DO 
     219      END DO 
     220 
     221     ENDIF 
     222 
    147223      CALL lbc_lnk( avt , 'W', 1. )                         ! Boundary conditions   (unchanged sign) 
    148224      CALL lbc_lnk( avmu, 'U', 1. )   ;   CALL lbc_lnk( avmv, 'V', 1. ) 
    149225      ! 
    150       IF( wrk_not_released(2, 1) )   CALL ctl_stop('zdf_ric: failed to release workspace array') 
     226      IF( wrk_not_released(2, 1,2) )   CALL ctl_stop('zdf_ric: failed to release workspace array') 
    151227      ! 
    152228   END SUBROUTINE zdf_ric 
     
    168244      INTEGER :: ji, jj, jk   ! dummy loop indices 
    169245      !! 
    170       NAMELIST/namzdf_ric/ rn_avmri, rn_alp, nn_ric 
     246      NAMELIST/namzdf_ric/ rn_avmri, rn_alp   , nn_ric  , rn_ekmfc,  & 
     247         &                rn_mldmin, rn_mldmax, rn_wtmix, rn_wvmix, ln_mldw 
    171248      !!---------------------------------------------------------------------- 
    172249      ! 
     
    179256         WRITE(numout,*) '~~~~~~~' 
    180257         WRITE(numout,*) '   Namelist namzdf_ric : set Kz(Ri) parameters' 
    181          WRITE(numout,*) '      maximum vertical viscosity     rn_avmri = ', rn_avmri 
    182          WRITE(numout,*) '      coefficient                    rn_alp   = ', rn_alp 
    183          WRITE(numout,*) '      coefficient                    nn_ric   = ', nn_ric 
     258         WRITE(numout,*) '      maximum vertical viscosity     rn_avmri  = ', rn_avmri 
     259         WRITE(numout,*) '      coefficient                    rn_alp    = ', rn_alp 
     260         WRITE(numout,*) '      coefficient                    nn_ric    = ', nn_ric 
     261         WRITE(numout,*) '      Ekman Factor Coeff             rn_ekmfc  = ', rn_ekmfc 
     262         WRITE(numout,*) '      minimum mixed layer depth      rn_mldmin = ', rn_mldmin 
     263         WRITE(numout,*) '      maximum mixed layer depth      rn_mldmax = ', rn_mldmax 
     264         WRITE(numout,*) '      Vertical eddy Diff. in the ML  rn_wtmix  = ', rn_wtmix 
     265         WRITE(numout,*) '      Vertical eddy Visc. in the ML  rn_wvmix  = ', rn_wvmix 
     266         WRITE(numout,*) '      Use the MLD parameterization   ln_mldw   = ', ln_mldw 
    184267      ENDIF 
    185268      ! 
Note: See TracChangeset for help on using the changeset viewer.