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

Changeset 7878


Ignore:
Timestamp:
2017-04-05T17:12:32+02:00 (7 years ago)
Author:
jcastill
Message:

Add Phillips vertical Stokes drift parameterization as in the HZG wave branch

Location:
branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/CONFIG/SHARED/namelist_ref

    r7854 r7878  
    283283                           !  = 2 standard formulation with constant drag coefficient 
    284284                           !  = 3 momentum calculated from core forcing fields 
     285   nn_sdrift = 0           !  Parameterization for the calculation of 3D-Stokes drift from the surface Stokes drift 
     286                           !  = 0 Breivik 2015 parameterization: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 
     287                           !  = 1 Phillips:                      v_z=v_o*[exp(2*k*z)-beta*sqrt(-2*k*pi*z)*erfc(sqrt(-2*k*z))] 
    285288/ 
    286289!----------------------------------------------------------------------- 
     
    394397   sn_rcv_sdrfy  =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''  
    395398   sn_rcv_wper   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''  
     399   sn_rcv_wfreq  =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''  
    396400   sn_rcv_wnum   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''  
    397401   sn_rcv_tauoc  =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''  
     
    13031307   sn_hsw      =  'sdw_wave' ,        1          , 'hs'         ,     .true.   , .false. , 'daily'   ,  ''      , ''       , ''  
    13041308   sn_wmp      =  'sdw_wave' ,        1          , 'wmp'        ,     .true.   , .false. , 'daily'   ,  ''      , ''       , ''  
     1309   sn_wfr      =  'sdw_wave' ,        1          , 'wave_freq'  ,     .true.   , .false. , 'daily'   ,  ''      , ''       , ''  
    13051310   sn_wnum     =  'sdw_wave' ,        1          , 'wave_num'   ,     .true.   , .false. , 'daily'   ,  ''      , ''       , ''  
    13061311   sn_tauoc    =  'sdw_wave' ,        1          , 'wave_stress',     .true.   , .false. , 'daily'   ,  ''      , ''       , ''  
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r7854 r7878  
    7171   LOGICAL , PUBLIC ::   ln_stcor       !: true if Stokes-Coriolis term is used  
    7272   INTEGER , PUBLIC ::   nn_drag        ! type of formula to calculate wind stress from wind components 
     73   INTEGER , PUBLIC ::   nn_sdrift      ! type of parameterization to calculate vertical Stokes drift 
    7374   ! 
    7475   LOGICAL , PUBLIC ::   ln_icebergs    !: Icebergs 
     
    104105   INTEGER, PUBLIC, PARAMETER ::   jp_const = 2        ! standard formulation with constant drag coefficient  
    105106   INTEGER, PUBLIC, PARAMETER ::   jp_mcore = 3        ! momentum calculated from core forcing fields  
     107 
     108   !!---------------------------------------------------------------------- 
     109   !!           Stokes drift parameterization 
     110   !!---------------------------------------------------------------------- 
     111   INTEGER, PUBLIC, PARAMETER ::   jp_breivik  = 0     ! Breivik 2015: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 
     112   INTEGER, PUBLIC, PARAMETER ::   jp_phillips = 1     ! Phillips:     v_z=v_o*[exp(2*k*z)-beta*sqrt(-2*k*pi*z)*erfc(sqrt(-2*k*z))] 
    106113 
    107114   !!---------------------------------------------------------------------- 
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7854 r7878  
    115115   INTEGER, PARAMETER ::   jpr_tauoc  = 50            ! Stress fraction adsorbed by waves  
    116116   INTEGER, PARAMETER ::   jpr_wdrag  = 51            ! Neutral surface drag coefficient  
    117    INTEGER, PARAMETER ::   jprcv      = 51            ! total number of fields received 
     117   INTEGER, PARAMETER ::   jpr_wfreq  = 52            ! Wave peak frequency  
     118   INTEGER, PARAMETER ::   jprcv      = 52            ! total number of fields received 
    118119 
    119120   INTEGER, PARAMETER ::   jps_fice   =  1            ! ice fraction sent to the atmosphere 
     
    167168   TYPE(FLD_C) ::   sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev   
    168169   ! Received from waves   
    169    TYPE(FLD_C) ::   sn_rcv_hsig,sn_rcv_phioc,sn_rcv_sdrfx,sn_rcv_sdrfy,sn_rcv_wper,sn_rcv_wnum,sn_rcv_tauoc,sn_rcv_wdrag 
     170   TYPE(FLD_C) ::   sn_rcv_hsig,sn_rcv_phioc,sn_rcv_sdrfx,sn_rcv_sdrfy,sn_rcv_wper, & 
     171                    sn_rcv_wfreq,sn_rcv_wnum,sn_rcv_tauoc,sn_rcv_wdrag 
    170172   ! Other namelist parameters                        ! 
    171173   INTEGER     ::   nn_cplmodel            ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 
     
    242244         &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau   , sn_rcv_dqnsdt, sn_rcv_qsr,      &   
    243245         &                  sn_snd_ifrac, sn_snd_crtw , sn_snd_wlev  , sn_rcv_hsig  , sn_rcv_phioc ,   &   
    244          &                  sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper  , sn_rcv_wnum  , sn_rcv_tauoc ,   &  
    245          &                  sn_rcv_wdrag, sn_rcv_qns  , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   ,   &  
    246          &                  sn_rcv_iceflx,sn_rcv_co2  , nn_cplmodel  , ln_usecplmask, sn_rcv_mslp 
     246         &                  sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper  , sn_rcv_wnum  , sn_rcv_wfreq,    & 
     247         &                  sn_rcv_tauoc, sn_rcv_wdrag, sn_rcv_qns   , sn_rcv_emp   , sn_rcv_rnf,      & 
     248         &                  sn_rcv_cal , sn_rcv_iceflx, sn_rcv_co2   , sn_rcv_mslp  , nn_cplmodel,     & 
     249         &                  ln_usecplmask 
    247250      !!--------------------------------------------------------------------- 
    248251      ! 
     
    291294         WRITE(numout,*)'      Mean wave period                = ', TRIM(sn_rcv_wper%cldes  ), ' (', TRIM(sn_rcv_wper%clcat  ), ')'   
    292295         WRITE(numout,*)'      Mean wave number                = ', TRIM(sn_rcv_wnum%cldes  ), ' (', TRIM(sn_rcv_wnum%clcat  ), ')'   
     296         WRITE(numout,*)'      Wave peak frequency             = ', TRIM(sn_rcv_wfreq%cldes ), ' (', TRIM(sn_rcv_wfreq%clcat ), ')'   
    293297         WRITE(numout,*)'      Stress frac adsorbed by waves   = ', TRIM(sn_rcv_tauoc%cldes ), ' (', TRIM(sn_rcv_tauoc%clcat ), ')'   
    294298         WRITE(numout,*)'      Neutral surf drag coefficient   = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')' 
     
    559563         cpl_wper = .TRUE.  
    560564      ENDIF  
     565      srcv(jpr_wfreq)%clname = 'O_WFreq'     ! wave peak frequency  
     566      IF( TRIM(sn_rcv_wfreq%cldes ) == 'coupled' )  THEN  
     567         srcv(jpr_wfreq)%laction = .TRUE.  
     568         cpl_wfreq = .TRUE.  
     569      ENDIF  
    561570      srcv(jpr_wnum)%clname = 'O_WNum'       ! mean wave number  
    562571      IF( TRIM(sn_rcv_wnum%cldes ) == 'coupled' )  THEN  
     
    11821191      !  
    11831192      !                                                      ! ========================= !   
     1193      !                                                      !    Wave peak frequency    !  
     1194      !                                                      ! ========================= !   
     1195         IF( srcv(jpr_wfreq)%laction ) wfreq(:,:) = frcv(jpr_wfreq)%z3(:,:,1)  
     1196      ! 
     1197      !                                                      ! ========================= !   
    11841198      !                                                      !    Vertical mixing Qiao   !  
    11851199      !                                                      ! ========================= !   
     
    11881202         ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode  
    11891203         IF( srcv(jpr_sdrftx)%laction .OR. srcv(jpr_sdrfty)%laction .OR. srcv(jpr_wper)%laction &  
    1190                                                                     .OR. srcv(jpr_hsig)%laction ) &  
     1204                                      .OR. srcv(jpr_hsig)%laction   .OR. srcv(jpr_wfreq)%laction) &  
    11911205            CALL sbc_stokes()  
    11921206      ENDIF  
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r7854 r7878  
    9090         &             ln_ssr    , nn_isf    , nn_fwb, ln_cdgw    , ln_wave    , ln_sdw   ,   & 
    9191         &             ln_tauoc  , ln_stcor  , nn_lsm, nn_limflx , nn_components, ln_cpl  ,   & 
    92          &             ln_phioc  , ln_wavcpl , nn_drag 
     92         &             ln_phioc  , ln_wavcpl , nn_drag, nn_sdrift 
    9393      INTEGER  ::   ios 
    9494      INTEGER  ::   ierr, ierr0, ierr1, ierr2, ierr3, jpm 
     
    236236         IF ( ln_cdgw .AND. ln_flx .AND. nn_drag==3 ) & 
    237237             CALL ctl_stop( 'The chosen nn_drag for momentum calculation in direct forcing must be 0, 1, or 2') 
     238         IF ( ln_sdw .AND. .NOT.(nn_sdrift==jp_breivik .OR. nn_sdrift==jp_phillips) ) & 
     239             CALL ctl_stop( 'The chosen nn_sdrift for vertical Stokes drift must be 0, or 1') 
    238240      ELSE 
    239241         IF ( ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor .OR. ln_phioc ) &   
  • branches/UKMO/r6232_HZG_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r7853 r7878  
    4242   LOGICAL, PUBLIC ::   cpl_sdrfty = .FALSE. 
    4343   LOGICAL, PUBLIC ::   cpl_wper   = .FALSE. 
     44   LOGICAL, PUBLIC ::   cpl_wfreq  = .FALSE. 
    4445   LOGICAL, PUBLIC ::   cpl_wnum   = .FALSE. 
    4546   LOGICAL, PUBLIC ::   cpl_tauoc  = .FALSE. 
     
    5152   INTEGER ::   jp_hsw   ! index of significant wave hight      (m)      at T-point 
    5253   INTEGER ::   jp_wmp   ! index of mean wave period            (s)      at T-point 
     54   INTEGER ::   jp_wfr   ! index of wave peak frequency         (s^-1)   at T-point 
    5355 
    5456   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::  sf_cd    ! structure of input fields (file informations, fields read) Drag Coefficient 
     
    5961   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)   ::   cdn_wave            !: 
    6062   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)   ::   hsw, wmp, wnum      !: 
     63   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)   ::   wfreq               !:  
    6164   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)   ::   rn_crban            !: Craig and Banner constant for surface breaking waves mixing 
    6265   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:)   ::   tauoc_wave          !: 
     
    99102      CALL wrk_alloc( jpi,jpj,       zk_t, zk_u, zk_v, zu0_sd, zv0_sd )  
    100103      ! 
    101       zfac = 2.0_wp * rpi / 16.0_wp 
    102       DO jj = 1, jpj               ! exp. wave number at t-point    (Eq. (19) in Breivick et al. (2014) ) 
    103          DO ji = 1, jpi 
    104             ! Stokes drift velocity estimated from Hs and Tmean 
    105             ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj), 0.0000001_wp ) 
    106             ! Stokes surface speed 
    107             tsd2d(ji,jj) = SQRT( ut0sd(ji,jj)*ut0sd(ji,jj) + vt0sd(ji,jj)*vt0sd(ji,jj)) 
    108             ! Wavenumber scale 
    109             zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 
    110          END DO 
    111       END DO 
    112       DO jj = 1, jpjm1              ! exp. wave number & Stokes drift velocity at u- & v-points 
    113          DO ji = 1, jpim1 
    114             zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 
    115             zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 
    116             ! 
    117             zu0_sd(ji,jj) = 0.5_wp * ( ut0sd(ji,jj) + ut0sd(ji+1,jj) ) 
    118             zv0_sd(ji,jj) = 0.5_wp * ( vt0sd(ji,jj) + vt0sd(ji,jj+1) ) 
    119          END DO 
    120       END DO 
    121       ! 
    122       !                       !==  horizontal Stokes Drift 3D velocity  ==! 
    123       DO jk = 1, jpkm1 
    124          DO jj = 2, jpjm1 
    125             DO ji = 2, jpim1 
    126                zdep_u = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji+1,jj,jk) ) 
    127                zdep_v = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji,jj+1,jk) ) 
    128                !                           
    129                zkh_u = zk_u(ji,jj) * zdep_u     ! k * depth 
    130                zkh_v = zk_v(ji,jj) * zdep_v 
    131                !                                ! Depth attenuation 
    132                zda_u = EXP( -2.0_wp*zkh_u ) / ( 1.0_wp + 8.0_wp*zkh_u ) 
    133                zda_v = EXP( -2.0_wp*zkh_v ) / ( 1.0_wp + 8.0_wp*zkh_v ) 
     104      ! select parameterization for the calculation of vertical Stokes drift 
     105      SELECT CASE ( nn_sdrift ) 
     106      ! 
     107      CASE ( jp_breivik ) 
     108         zfac = 2.0_wp * rpi / 16.0_wp 
     109         DO jj = 1, jpj               ! exp. wave number at t-point    (Eq. (19) in Breivick et al. (2014) ) 
     110            DO ji = 1, jpi 
     111               ! Stokes drift velocity estimated from Hs and Tmean 
     112               ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj), 0.0000001_wp ) 
     113               ! Stokes surface speed 
     114               tsd2d(ji,jj) = SQRT( ut0sd(ji,jj)*ut0sd(ji,jj) + vt0sd(ji,jj)*vt0sd(ji,jj)) 
     115               ! Wavenumber scale 
     116               zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 
     117            END DO 
     118         END DO 
     119         DO jj = 1, jpjm1              ! exp. wave number & Stokes drift velocity at u- & v-points 
     120            DO ji = 1, jpim1 
     121               zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 
     122               zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 
    134123               ! 
    135                usd(ji,jj,jk) = zda_u * zk_u(ji,jj) * umask(ji,jj,jk) 
    136                vsd(ji,jj,jk) = zda_v * zk_v(ji,jj) * vmask(ji,jj,jk) 
    137             END DO 
    138          END DO 
    139       END DO 
     124               zu0_sd(ji,jj) = 0.5_wp * ( ut0sd(ji,jj) + ut0sd(ji+1,jj) ) 
     125               zv0_sd(ji,jj) = 0.5_wp * ( vt0sd(ji,jj) + vt0sd(ji,jj+1) ) 
     126            END DO 
     127         END DO 
     128         ! 
     129         !                       !==  horizontal Stokes Drift 3D velocity  ==! 
     130         DO jk = 1, jpkm1 
     131            DO jj = 2, jpjm1 
     132               DO ji = 2, jpim1 
     133                  zdep_u = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji+1,jj,jk) ) 
     134                  zdep_v = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji,jj+1,jk) ) 
     135                  !                           
     136                  zkh_u = zk_u(ji,jj) * zdep_u     ! k * depth 
     137                  zkh_v = zk_v(ji,jj) * zdep_v 
     138                  !                                ! Depth attenuation 
     139                  zda_u = EXP( -2.0_wp*zkh_u ) / ( 1.0_wp + 8.0_wp*zkh_u ) 
     140                  zda_v = EXP( -2.0_wp*zkh_v ) / ( 1.0_wp + 8.0_wp*zkh_v ) 
     141                  ! 
     142                  usd(ji,jj,jk) = zda_u * zu0_sd(ji,jj) * umask(ji,jj,jk) 
     143                  vsd(ji,jj,jk) = zda_v * zv0_sd(ji,jj) * vmask(ji,jj,jk) 
     144               END DO 
     145            END DO 
     146         END DO 
     147      CASE ( jp_phillips ) 
     148         DO jj = 1, jpjm1              ! Peak wavenumber & Stokes drift velocity at u- & v-points 
     149            DO ji = 1, jpim1 
     150               zk_u(ji,jj) = 0.5_wp * ( wfreq(ji,jj)*wfreq(ji,jj) + wfreq(ji+1,jj)*wfreq(ji+1,jj) ) / grav 
     151               zk_v(ji,jj) = 0.5_wp * ( wfreq(ji,jj)*wfreq(ji,jj) + wfreq(ji,jj+1)*wfreq(ji,jj+1) ) / grav 
     152               ! 
     153               zu0_sd(ji,jj) = 0.5_wp * ( ut0sd(ji,jj) + ut0sd(ji+1,jj) ) 
     154               zv0_sd(ji,jj) = 0.5_wp * ( vt0sd(ji,jj) + vt0sd(ji,jj+1) ) 
     155            END DO 
     156         END DO 
     157         ! 
     158         !                       !==  horizontal Stokes Drift 3D velocity  ==! 
     159         DO jk = 1, jpkm1 
     160            DO jj = 2, jpjm1 
     161               DO ji = 2, jpim1 
     162                  zdep_u = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji+1,jj,jk) ) 
     163                  zdep_v = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji,jj+1,jk) ) 
     164                  !                           
     165                  zkh_u = zk_u(ji,jj) * zdep_u     ! k * depth 
     166                  zkh_v = zk_v(ji,jj) * zdep_v 
     167                  !                                ! Depth attenuation: beta=1 for Phillips 
     168                  zda_u = EXP( -2.0_wp*zkh_u ) - 1.0*SQRT(2.0*rpi*zkh_u) * ERFC(SQRT(2.0*zkh_u)) 
     169                  zda_v = EXP( -2.0_wp*zkh_v ) - 1.0*SQRT(2.0*rpi*zkh_v) * ERFC(SQRT(2.0*zkh_v)) 
     170                  ! 
     171                  usd(ji,jj,jk) = zda_u * zu0_sd(ji,jj) * umask(ji,jj,jk) 
     172                  vsd(ji,jj,jk) = zda_v * zv0_sd(ji,jj) * vmask(ji,jj,jk) 
     173               END DO 
     174            END DO 
     175         END DO 
     176      END SELECT 
     177 
    140178      CALL lbc_lnk( usd(:,:,:), 'U', vsd(:,:,:), 'V', -1. ) 
    141179      ! 
     
    227265         CALL fld_read( kt, nn_fsbc, sf_phioc )          ! read wave to ocean energy from external forcing 
    228266         rn_crban(:,:) = 29.0 * sf_phioc(1)%fnow(:,:,1)     ! ! Alfa is phioc*sqrt(rau0/zrhoa)  : rau0=water density, zhroa= air density 
    229          WHERE( rn_crban <  10.0 ) rn_crban =  10.0 
    230          WHERE( rn_crban > 300.0 ) rn_crban = 300.0 
     267         WHERE( rn_crban < -1000.0 ) rn_crban = 0.0 
     268         WHERE( rn_crban >  1000.0 ) rn_crban = 0.0 
    231269      ENDIF 
    232270 
     
    245283               WHERE( wmp <   0.0 ) wmp = 0.0 
    246284            ENDIF 
     285            IF( jp_wfr > 0 ) THEN 
     286               wfreq(:,:) = sf_sd(jp_wfr)%fnow(:,:,1)   ! Peak wave frequency  
     287               WHERE( wfreq <    0.0 ) wfreq = 0.001  
     288               WHERE( wfreq >  100.0 ) wfreq = 0.001 
     289            ENDIF 
    247290            IF( jp_usd > 0 ) THEN 
    248291               ut0sd(:,:) = sf_sd(jp_usd)%fnow(:,:,1)   ! 2D zonal Stokes Drift at T point 
     
    265308         !                                         !==  Computation of the 3d Stokes Drift  ==!  
    266309         ! 
    267          IF( jpfld == 4 )   CALL sbc_stokes()            ! Calculate only if required fields are read 
    268          !                                               ! In coupled wave model-NEMO case the call is done after coupling 
     310         IF( (nn_sdrift==jp_breivik  .AND. jp_hsw>0 .AND. jp_wmp>0 .AND. jp_usd>0 .AND. jp_vsd>0) .OR. & 
     311             (nn_sdrift==jp_phillips .AND. jp_wfr>0 .AND. jp_usd>0 .AND. jp_vsd>0) ) & 
     312            CALL sbc_stokes()            ! Calculate only if required fields are read 
     313         !                               ! In coupled wave model-NEMO case the call is done after coupling 
    269314         ! 
    270315      ENDIF 
     
    292337      CHARACTER(len=100)     ::  cn_dir                          ! Root directory for location of drag coefficient files 
    293338      TYPE(FLD_N), ALLOCATABLE, DIMENSION(:) ::   slf_i     ! array of namelist informations on the fields to read 
    294       TYPE(FLD_N)            ::  sn_cdg, sn_usd, sn_vsd,  sn_phioc, & 
    295                              &   sn_hsw, sn_wmp, sn_wnum, sn_tauoc      ! informations about the fields to be read 
    296       ! 
    297       NAMELIST/namsbc_wave/  sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wnum, sn_tauoc, sn_phioc 
     339      TYPE(FLD_N)            ::  sn_cdg, sn_usd, sn_vsd, sn_phioc, & 
     340                             &   sn_hsw, sn_wmp, sn_wfr, sn_wnum , & 
     341                             &   sn_tauoc      ! informations about the fields to be read 
     342      ! 
     343      NAMELIST/namsbc_wave/  sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wfr, sn_wnum, sn_tauoc, sn_phioc 
    298344      !!--------------------------------------------------------------------- 
    299345      ! 
     
    345391      IF( ln_sdw ) THEN   ! Find out how many fields have to be read from file if not coupled 
    346392         jpfld=0 
    347          jp_usd=0   ;   jp_vsd=0   ;   jp_hsw=0   ;   jp_wmp=0 
     393         jp_usd=0   ;   jp_vsd=0   ;   jp_hsw=0   ;   jp_wmp=0   ;   jp_wfr=0 
    348394         IF( .NOT. cpl_sdrftx ) THEN 
    349395            jpfld  = jpfld + 1 
     
    361407            jpfld  = jpfld + 1 
    362408            jp_wmp = jpfld 
     409         ENDIF 
     410         IF( .NOT. cpl_wfreq ) THEN 
     411            jpfld  = jpfld + 1 
     412            jp_wfr = jpfld 
    363413         ENDIF 
    364414 
     
    370420            IF( jp_hsw > 0 )   slf_i(jp_hsw) = sn_hsw 
    371421            IF( jp_wmp > 0 )   slf_i(jp_wmp) = sn_wmp 
     422            IF( jp_wfr > 0 )   slf_i(jp_wfr) = sn_wfr 
    372423            ALLOCATE( sf_sd(jpfld), STAT=ierror )   !* allocate and fill sf_sd with stokes drift 
    373424            IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_sd structure' ) 
     
    382433         ALLOCATE( usd  (jpi,jpj,jpk), vsd  (jpi,jpj,jpk), wsd(jpi,jpj,jpk) ) 
    383434         ALLOCATE( hsw  (jpi,jpj)    , wmp  (jpi,jpj)     ) 
     435         ALLOCATE( wfreq (jpi,jpj) ) 
    384436         ALLOCATE( ut0sd(jpi,jpj)    , vt0sd(jpi,jpj)     ) 
    385437         ALLOCATE( div_sd(jpi,jpj) ) 
Note: See TracChangeset for help on using the changeset viewer.