New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 2990 for branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM – NEMO

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

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

Location:
branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2855_INGV2_3_blk_wave/NEMOGCM/CONFIG/GYRE/EXP00/namelist

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

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

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

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

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

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

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