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 7403 for branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90 – NEMO

Ignore:
Timestamp:
2016-11-30T17:56:53+01:00 (8 years ago)
Author:
timgraham
Message:

Merge dev_INGV_METO_merge_2016 into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r6460 r7403  
    8989      NAMELIST/namsbc/ nn_fsbc  , ln_ana   , ln_flx, ln_blk_clio, ln_blk_core, ln_blk_mfs,   & 
    9090         &             ln_cpl   , ln_mixcpl, nn_components      , nn_limflx  ,               & 
    91          &             ln_traqsr, ln_dm2dc ,                                                 &   
     91         &             ln_traqsr, ln_dm2dc ,                                                 & 
    9292         &             nn_ice   , nn_ice_embd,                                               & 
    9393         &             ln_rnf   , ln_ssr   , ln_isf   , nn_fwb    , ln_apr_dyn,              & 
    94          &             ln_wave  ,                                                            & 
    95          &             nn_lsm    
     94         &             ln_wave  , ln_cdgw  , ln_sdw   , ln_tauoc  , ln_stcor  ,              & 
     95         &             nn_lsm 
    9696      INTEGER  ::   ios 
    9797      INTEGER  ::   ierr, ierr0, ierr1, ierr2, ierr3, jpm 
     
    153153         WRITE(numout,*) '              closed sea (=0/1) (set in namdom)          nn_closea     = ', nn_closea 
    154154         WRITE(numout,*) '              nb of iterations if land-sea-mask applied  nn_lsm        = ', nn_lsm 
    155          WRITE(numout,*) '              surface wave                               ln_wave       = ', ln_wave   
     155         WRITE(numout,*) '              surface wave                               ln_wave       = ', ln_wave 
     156         WRITE(numout,*) '                 Stokes drift corr. to vert. velocity    ln_sdw        = ', ln_sdw 
     157         WRITE(numout,*) '                 wave modified ocean stress              ln_tauoc      = ', ln_tauoc 
     158         WRITE(numout,*) '                 Stokes coriolis term                    ln_stcor      = ', ln_stcor 
     159         WRITE(numout,*) '                 neutral drag coefficient (CORE, MFS)    ln_cdgw       = ', ln_cdgw 
    156160      ENDIF 
    157161      ! 
     
    220224         &   CALL ctl_stop( 'diurnal cycle into qsr field from daily values requires a flux or core-bulk formulation' ) 
    221225       
     226      IF ( ln_wave ) THEN 
     227      !Activated wave module but neither drag nor stokes drift activated 
     228         IF ( .NOT.(ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor ) )   THEN 
     229            CALL ctl_warn( 'Ask for wave coupling but ln_cdgw=F, ln_sdw=F, ln_tauoc=F, ln_stcor=F') 
     230      !drag coefficient read from wave model definable only with mfs bulk formulae and core  
     231         ELSEIF (ln_cdgw .AND. .NOT.(ln_blk_mfs .OR. ln_blk_core) )       THEN        
     232             CALL ctl_stop( 'drag coefficient read from wave model definable only with mfs bulk formulae and core') 
     233         ELSEIF (ln_stcor .AND. .NOT. ln_sdw)                             THEN 
     234             CALL ctl_stop( 'Stokes-Coriolis term calculated only if activated Stokes Drift ln_sdw=T') 
     235         ENDIF 
     236      ELSE 
     237      IF ( ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor )                &  
     238         &   CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but asked coupling ',    & 
     239         &                  'with drag coefficient (ln_cdgw =T) '  ,                        & 
     240         &                  'or Stokes Drift (ln_sdw=T) ' ,                                 & 
     241         &                  'or ocean stress modification due to waves (ln_tauoc=T) ',      &   
     242         &                  'or Stokes-Coriolis term (ln_stcori=T)'  ) 
     243      ENDIF  
    222244      !                          ! Choice of the Surface Boudary Condition (set nsbc) 
    223245      ll_purecpl = ln_cpl .AND. .NOT. ln_mixcpl 
     
    357379            &                CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice )   ! OPA-SAS coupling: OPA receiving fields from SAS 
    358380      END SELECT 
    359  
     381      IF ( ln_wave .AND. ln_tauoc) THEN                                 ! Wave stress subctracted 
     382            utau(:,:) = utau(:,:)*tauoc_wave(:,:) 
     383            vtau(:,:) = vtau(:,:)*tauoc_wave(:,:) 
     384            taum(:,:) = taum(:,:)*tauoc_wave(:,:) 
     385      ! 
     386            SELECT CASE( nsbc ) 
     387            CASE(  0,1,2,3,5,-1 )  ; 
     388                IF(lwp .AND. kt == nit000 ) WRITE(numout,*) 'WARNING: You are subtracting the wave stress to the ocean. & 
     389                        & If not requested select ln_tauoc=.false' 
     390            END SELECT 
     391      ! 
     392      END IF 
    360393      IF( ln_mixcpl )        CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice )   ! forced-coupled mixed formulation after forcing 
    361394 
Note: See TracChangeset for help on using the changeset viewer.