- Timestamp:
- 2011-11-14T14:13:32+01:00 (13 years ago)
- 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 355 355 } 356 356 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 357 367 @ARTICLE{Blanke_al_JPO99, 358 368 author = {B. Blanke and M. Arhan and G. Madec and S. Roche}, … … 590 600 doi = {10.1029/2002GL016473}, 591 601 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} 592 611 } 593 612 … … 1247 1266 } 1248 1267 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 1249 1277 @ARTICLE{He_Ding_JSC01, 1250 1278 author = {Y. He and C. H. Q. Ding}, … … 1511 1539 volume = {6}, 1512 1540 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} 1513 1558 } 1514 1559 … … 1906 1951 volume = {125}, number = {5}, 1907 1952 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} 1908 1962 } 1909 1963 … … 2115 2169 } 2116 2170 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 2117 2180 @PHDTHESIS{Olivier_PhD01, 2118 2181 author = {F. Olivier}, … … 2170 2233 } 2171 2234 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 2172 2244 @ARTICLE{Penduff_al_OM06, 2173 2245 author = {T. Penduff and B. Barnier and J.-M. Molines and G. Madec}, … … 2234 2306 volume = {13}, 2235 2307 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} 2236 2317 } 2237 2318 … … 2502 2583 volume = {8}, 2503 2584 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} 2504 2594 } 2505 2595 -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Chapters/Chap_SBC.tex
r3047 r3085 24 24 \end{itemize} 25 25 26 F ourdifferent ways to provide the first six fields to the ocean are available which26 Five different ways to provide the first six fields to the ocean are available which 27 27 are controlled by namelist variables: an analytical formulation (\np{ln\_ana}~=~true), 28 28 a 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 30 32 formulation (exchanges with a atmospheric model via the OASIS coupler) 31 33 (\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.}. 34 ocean and ice dynamics (\np{ln\_apr\_dyn}~=~true). 35 35 The frequency at which the six or seven fields have to be updated is the \np{nn\_fsbc} 36 36 namelist parameter. … … 46 46 (\np{nn\_ice}~=~0,1, 2 or 3); the addition of river runoffs as surface freshwater 47 47 fluxes 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); andthe48 in order to avoid a mean sea-level drift (\np{nn\_fwb}~=~0,~1~or~2); the 49 49 transformation of the solar radiation (if provided as daily mean) into a diurnal 50 cycle (\np{ln\_dm2dc}~=~true). 50 cycle (\np{ln\_dm2dc}~=~true); and a neutral drag coefficient can be read from an external wave 51 model (\np{ln\_cdgw}~=~true). The latter option is possible only in case core or ecmwf bulk formulas are selected. 51 52 52 53 In this chapter, we first discuss where the surface boundary condition appears in the 53 model equations. Then we present the f ourways of providing the surface boundary condition,54 model equations. Then we present the five ways of providing the surface boundary condition, 54 55 followed by the description of the atmospheric pressure and the river runoff. 55 56 Next the scheme for interpolation on the fly is described. … … 480 481 % Bulk formulation 481 482 % ================================================================ 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)} } 484 485 \label{SBC_blk} 485 486 … … 487 488 using bulk formulae and atmospheric fields and ocean (and ice) variables. 488 489 489 The atmospheric fields used depend on the bulk formulae used. T wobulk formulations490 are available : the CORE and CLIObulk formulea. The choice is made by setting to true491 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 providedinclude the computation of the fluxes over both490 The atmospheric fields used depend on the bulk formulae used. Three bulk formulations 491 are available : the CORE, the CLIO and the MFS bulk formulea. The choice is made by setting to true 492 one of the following namelist variable : \np{ln\_core} ; \np{ln\_clio} or \np{ln\_ecmwf}. 493 494 Note : in forced mode, when a sea-ice model is used, a bulk formulation (CLIO or CORE) have to be used. 495 Therefore the two bulk (CLIO and CORE) formulea include the computation of the fluxes over both 495 496 an ocean and an ice surface. 496 497 … … 583 584 namelist (see \S\ref{SBC_fldread}). 584 585 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 596 The MFS (Mediterranean Forecasting System) bulk formulae have been developed by 597 \citet{Castellari_al_JMS1998}. 598 They have been designed to handle the ECMWF operational data and are currently 599 in use in the MFS operational system \citep{Tonani_al_OS08}, \citep{Oddo_al_OS09}. 600 The wind stress computation uses a drag coefficient computed according to \citet{Hellerman_Rosenstein_JPO83}. 601 The surface boundary condition for temperature involves the balance between surface solar radiation, 602 net long-wave radiation, the latent and sensible heat fluxes. 603 Solar radiation is dependent on cloud cover and is computed by means of 604 an astronomical formula \citep{Reed_JPO77}. Albedo monthly values are from \citet{Payne_JAS72} 605 as means of the values at $40^{o}N$ and $30^{o}N$ for the Atlantic Ocean (hence the same latitudinal 606 band of the Mediterranean Sea). The net long-wave radiation flux 607 \citep{Bignami_al_JGR95} is a function of 608 air temperature, sea-surface temperature, cloud cover and relative humidity. 609 Sensible heat and latent heat fluxes are computed by classical 610 bulk formulae parameterized according to \citet{Kondo1975}. 611 Details on the bulk formulae used can be found in \citet{Maggiore_al_PCE98} and \citet{Castellari_al_JMS1998}. 612 613 The 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 % ------------------------------------------------------------------------------------------------------------- 585 624 % ================================================================ 586 625 % Coupled formulation … … 991 1030 \end{description} 992 1031 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 1043 In order to read a neutral drag coeff, from an external data source (i.e. a wave model), the 1044 logical variable \np{ln\_cdgw} 1045 in $namsbc$ namelist must be defined ${.true.}$. 1046 The \mdl{sbcwave} module containing the routine \np{sbc\_wave} reads the 1047 namelist ${namsbc\_wave}$ (for external data names, locations, frequency, interpolation and all 1048 the miscellanous options allowed by Input Data generic Interface see \S\ref{SBC_input}) 1049 and a 2D field of neutral drag coefficient. Then using the routine 1050 TURB\_CORE\_1Z or TURB\_CORE\_2Z, and starting from the neutral drag coefficent provided, the drag coefficient is computed according 1051 to stable/unstable conditions of the air-sea interface following \citet{Large_Yeager_Rep04}. 1052 1053 \end{description} 1054 993 1055 % Griffies doc: 994 1056 % 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. … … 997 1059 998 1060 999 -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Chapters/Chap_ZDF.tex
r2541 r3085 100 100 $a=5$ and $n=2$. The last three values can be modified by setting the 101 101 \np{rn\_avmri}, \np{rn\_alp} and \np{nn\_ric} namelist parameters, respectively. 102 103 A simple mixing-layer model to transfer and dissipate the atmospheric 104 forcings (wind-stress and buoyancy fluxes) can be activated setting 105 the \np{ln\_mldw} =.true. in the namelist. 106 107 In 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 110 This 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} 114 where, $Ek$ is an empirical parameter, $u^{*}$ is the friction velocity and $f_{0}$ is the Coriolis 115 parameter. 116 117 In this similarity height relationship, the turbulent friction velocity: 118 \begin{equation} 119 u^{*} = \sqrt \frac {|\tau|} {\rho_o} \\ 120 \end{equation} 121 122 is computed from the wind stress vector $|\tau|$ and the reference dendity $ \rho_o$. 123 The final $h_{e}$ is further constrained by the adjustable bounds \np{rn\_mldmin} and \np{rn\_mldmax}. 124 Once $h_{e}$ is computed, the vertical eddy coefficients within $h_{e}$ are set to 125 the empirical values \np{rn\_wtmix} and \np{rn\_wvmix} \citep{Lermusiaux2001}. 102 126 103 127 % ------------------------------------------------------------------------------------------------------------- -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Namelist/namsbc
r2540 r3085 8 8 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 9 9 ln_blk_core = .true. ! CORE bulk formulation (T => fill namsbc_core) 10 ln_blk_ecmwf= .false. ! MFS bulk formulation (T => fill namsbc_ecmwf) 10 11 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) 11 12 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) … … 20 21 ! =2 annual global mean of e-p-r set to zero 21 22 ! =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) 22 24 / -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/DOC/TexFiles/Namelist/namzdf_ric
r2540 r3085 5 5 rn_alp = 5. ! coefficient of the parameterization 6 6 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. 7 13 / -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r3055 r3085 138 138 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 139 139 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 140 ln_blk_ecmwf= .false. ! MFS bulk formulation (T => fill namsbc_ecmwf) 140 141 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) 141 142 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) … … 150 151 ! =2 annual global mean of e-p-r set to zero 151 152 ! =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) 152 154 / 153 155 !----------------------------------------------------------------------- … … 208 210 ln_taudif = .false. ! HF tau contribution: use "mean of stress module - module of the mean stress" data 209 211 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 210 227 / 211 228 !----------------------------------------------------------------------- … … 614 631 rn_alp = 5. ! coefficient of the parameterization 615 632 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. 616 639 / 617 640 !----------------------------------------------------------------------- … … 898 921 salfixmin = -9999 ! Minimum salinity after applying the increments 899 922 / 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 138 138 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 139 139 ln_blk_core = .true. ! CORE bulk formulation (T => fill namsbc_core) 140 ln_blk_ecmwf= .false. ! MFS bulk formulation (T => fill namsbc_ecmwf) 140 141 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) 141 142 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) … … 150 151 ! =2 annual global mean of e-p-r set to zero 151 152 ! =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) 152 154 / 153 155 !----------------------------------------------------------------------- … … 208 210 ln_taudif = .false. ! HF tau contribution: use "mean of stress module - module of the mean stress" data 209 211 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 210 227 / 211 228 !----------------------------------------------------------------------- … … 614 631 rn_alp = 5. ! coefficient of the parameterization 615 632 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. 616 639 / 617 640 !----------------------------------------------------------------------- … … 908 931 salfixmin = -9999 ! Minimum salinity after applying the increments 909 932 / 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 138 138 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 139 139 ln_blk_core = .true. ! CORE bulk formulation (T => fill namsbc_core) 140 ln_blk_ecmwf= .false. ! MFS bulk formulation (T => fill namsbc_ecmwf) 140 141 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) 141 142 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) … … 150 151 ! =2 annual global mean of e-p-r set to zero 151 152 ! =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 ) 152 154 / 153 155 !----------------------------------------------------------------------- … … 208 210 ln_taudif = .false. ! HF tau contribution: use "mean of stress module - module of the mean stress" data ? 209 211 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 210 227 / 211 228 !----------------------------------------------------------------------- … … 606 623 rn_alp = 5. ! coefficient of the parameterization 607 624 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. 608 631 / 609 632 !----------------------------------------------------------------------- … … 890 913 salfixmin = -9999 ! Minimum salinity after applying the increments 891 914 / 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 138 138 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 139 139 ln_blk_core = .true. ! CORE bulk formulation (T => fill namsbc_core) 140 ln_blk_ecmwf= .false. ! MFS bulk formulation (T => fill namsbc_ecmwf) 140 141 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) 141 142 ln_apr_dyn = .false. ! Patm gradient added in ocean & ice Eqs. (T => fill namsbc_apr ) … … 150 151 ! =2 annual global mean of e-p-r set to zero 151 152 ! =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) 152 154 / 153 155 !----------------------------------------------------------------------- … … 208 210 ln_taudif = .false. ! HF tau contribution: use "mean of stress module - module of the mean stress" data 209 211 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 210 227 / 211 228 !----------------------------------------------------------------------- … … 614 631 rn_alp = 5. ! coefficient of the parameterization 615 632 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. 616 639 / 617 640 !----------------------------------------------------------------------- … … 903 926 salfixmin = -9999 ! Minimum salinity after applying the increments 904 927 / 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 23 23 USE par_ice_2 ! LIM2 parameters 24 24 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") 26 27 USE ice_2 ! LIM2 ice variable 27 28 USE limmsh_2 ! LIM2 mesh … … 65 66 #if ! defined key_lim2_vp 66 67 ierr = ierr + lim_rhg_alloc () 68 #else 69 ierr = ierr + lim_rhg_alloc_2 () 67 70 #endif 68 71 IF( lk_mpp ) CALL mpp_sum( ierr ) -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/LIM_SRC_2/limistate_2.F90
r2528 r3085 124 124 syyst (:,:) = 0.e0 125 125 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 126 131 127 132 !-- lateral boundary conditions -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r2715 r3085 33 33 LOGICAL , PUBLIC :: ln_blk_clio = .FALSE. !: CLIO bulk formulation 34 34 LOGICAL , PUBLIC :: ln_blk_core = .FALSE. !: CORE bulk formulation 35 LOGICAL , PUBLIC :: ln_blk_ecmwf= .FALSE. !: MFS bulk formulation 35 36 LOGICAL , PUBLIC :: ln_cpl = .FALSE. !: coupled formulation (overwritten by key_sbc_coupled ) 36 37 LOGICAL , PUBLIC :: ln_dm2dc = .FALSE. !: Daily mean to Diurnal Cycle short wave (qsr) … … 43 44 ! !: = 1 global mean of e-p-r set to zero at each nn_fsbc time step 44 45 ! !: = 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 45 47 46 48 !!---------------------------------------------------------------------- -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r2777 r3085 34 34 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 35 35 USE prtctl ! Print control 36 USE sbcwave,ONLY : cdn_wave !wave module 36 37 #if defined key_lim3 37 38 USE sbc_ice ! Surface boundary condition: ice fields … … 43 44 PUBLIC sbc_blk_core ! routine called in sbcmod module 44 45 PUBLIC blk_ice_core ! routine called in sbc_ice_lim module 46 PUBLIC turb_core_2z ! routine calles in sbcblk_ecmwf module 45 47 46 48 INTEGER , PARAMETER :: jpfld = 9 ! maximum number of files to read … … 682 684 !! Neutral Drag Coefficient 683 685 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 685 692 sqrt_Cd_n10 = sqrt(Cd_n10) 686 693 Ce_n10 = 1E-3 * ( 34.6 * sqrt_Cd_n10 ) ! L & Y eq. (6b) … … 705 712 zpsi_m = psi_m(zeta) 706 713 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 721 732 !! 722 733 xlogt = log(zu/10.) - zpsi_h … … 812 823 !! Neutral Drag Coefficient : 813 824 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 815 831 sqrt_Cd_n10 = sqrt(Cd_n10) 816 832 Ce_n10 = 1E-3*( 34.6 * sqrt_Cd_n10 ) … … 853 869 stab = 0.5 + sign(0.5,q_zu) ; q_zu = stab*q_zu 854 870 !! 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 !! 869 887 xlogt = log(zu/10.) - zpsi_hu 870 888 !! -
branches/2011/dev_MERCATOR_INGV_2011_MERGE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r2715 r3085 29 29 USE sbcblk_clio ! surface boundary condition: bulk formulation : CLIO 30 30 USE sbcblk_core ! surface boundary condition: bulk formulation : CORE 31 USE sbcblk_ecmwf ! surface boundary condition: bulk formulation : MFS 31 32 USE sbcice_if ! surface boundary condition: ice-if sea-ice model 32 33 USE sbcice_lim ! surface boundary condition: LIM 3.0 sea-ice model … … 46 47 USE in_out_manager ! I/O manager 47 48 USE lib_mpp ! MPP library 49 USE sbcwave ! Wave module 48 50 49 51 IMPLICIT NONE … … 78 80 !! 79 81 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_fwb82 & ln_blk_ecmwf, ln_apr_dyn, nn_ice , ln_dm2dc, ln_rnf, ln_ssr , nn_fwb, ln_cdgw 81 83 !!---------------------------------------------------------------------- 82 84 … … 107 109 WRITE(numout,*) ' flux formulation ln_flx = ', ln_flx 108 110 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 110 113 WRITE(numout,*) ' coupled formulation (T if key_sbc_cpl) ln_cpl = ', ln_cpl 111 114 WRITE(numout,*) ' Misc. options of sbc : ' … … 154 157 IF( ln_dm2dc .AND. ( ( NINT(rday) / ( nn_fsbc * NINT(rdt) ) ) < 8 ) ) & 155 158 & 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') 156 163 157 164 ! ! Choice of the Surface Boudary Condition (set nsbc) … … 161 168 IF( ln_blk_clio ) THEN ; nsbc = 3 ; icpt = icpt + 1 ; ENDIF ! CLIO bulk formulation 162 169 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 163 171 IF( ln_cpl ) THEN ; nsbc = 5 ; icpt = icpt + 1 ; ENDIF ! Coupled formulation 164 172 IF( cp_cfg == 'gyre') THEN ; nsbc = 0 ; ENDIF ! GYRE analytical formulation … … 181 189 IF( nsbc == 4 ) WRITE(numout,*) ' CORE bulk formulation' 182 190 IF( nsbc == 5 ) WRITE(numout,*) ' coupled formulation' 191 IF( nsbc == 6 ) WRITE(numout,*) ' MFS Bulk formulation' 183 192 ENDIF 184 193 ! … … 228 237 ! ! averaged over nf_sbc time-step 229 238 239 IF (ln_cdgw) CALL sbc_wave( kt ) 230 240 !== sbc formulation ==! 231 241 … … 238 248 CASE( 4 ) ; CALL sbc_blk_core( kt ) ! bulk formulation : CORE for the ocean 239 249 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 240 251 CASE( -1 ) 241 252 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 7 7 !! History : OPA ! 1987-09 (P. Andrich) Original code 8 8 !! 4.0 ! 1991-11 (G. Madec) 9 !! 7.0 ! 1996-01 (G. Madec) complet rewriting of multitasking suppression of common work arrays10 !! 8.0 ! 1997-06 (G. Madec) complete rewriting of zdfmix9 !! 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 11 11 !! NEMO 1.0 ! 2002-06 (G. Madec) F90: Free form and module 12 12 !! 3.3 ! 2010-10 (C. Ethe, G. Madec) reorganisation of initialisation phase 13 !! 3.3.1! 2011-09 (P. Oddo) Mixed layer depth parameterization 13 14 !!---------------------------------------------------------------------- 14 15 #if defined key_zdfric || defined key_esopa … … 20 21 !! zdf_ric_init : initialization, namelist read, & parameters control 21 22 !!---------------------------------------------------------------------- 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 28 30 29 31 IMPLICIT NONE … … 39 41 REAL(wp) :: rn_avmri = 100.e-4_wp ! maximum value of the vertical eddy viscosity 40 42 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 41 49 42 50 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tmric !: coef. for the horizontal mean at t-point … … 67 75 !! 68 76 !! ** 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. 70 78 !! 71 79 !! ** Method : Local richardson number dependent formulation of the 72 !! vertical eddy viscosity and diffusivity coefficients.80 !! vertical eddy viscosity and diffusivity coefficients. 73 81 !! The eddy coefficients are given by: 74 82 !! avm = avm0 + avmb 75 83 !! avt = avm0 / (1 + rn_alp*ri) 76 !! with ri = N^2 / dz(u)**277 !! = e3w**2 * rn2/[ mi( dk(ub) )+mj( dk(vb) ) ]78 !! avm0= rn_avmri / (1 + rn_alp*ri)**nn_ric84 !! 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 79 87 !! Where ri is the before local Richardson number, 80 88 !! rn_avmri is the maximum value reaches by avm and avt … … 84 92 !! avtb=1.e-7 m2/s, rn_alp=5. and nn_ric=2. 85 93 !! 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 86 105 !! N.B. the mask are required for implicit scheme, and surface 87 106 !! and bottom value already set in zdfini.F90 88 107 !! 89 108 !! References : Pacanowski & Philander 1981, JPO, 1441-1451. 109 !! PFJ Lermusiaux 2001. 90 110 !!---------------------------------------------------------------------- 91 111 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 101 125 CALL ctl_stop('zdf_ric : requested workspace array unavailable') ; RETURN 102 126 ENDIF … … 145 169 ! ! =============== 146 170 ! 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 147 223 CALL lbc_lnk( avt , 'W', 1. ) ! Boundary conditions (unchanged sign) 148 224 CALL lbc_lnk( avmu, 'U', 1. ) ; CALL lbc_lnk( avmv, 'V', 1. ) 149 225 ! 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') 151 227 ! 152 228 END SUBROUTINE zdf_ric … … 168 244 INTEGER :: ji, jj, jk ! dummy loop indices 169 245 !! 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 171 248 !!---------------------------------------------------------------------- 172 249 ! … … 179 256 WRITE(numout,*) '~~~~~~~' 180 257 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 184 267 ENDIF 185 268 !
Note: See TracChangeset
for help on using the changeset viewer.