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 8992 for branches/2017/dev_METO_MERCATOR_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2017-12-12T16:38:41+01:00 (7 years ago)
Author:
timgraham
Message:

Merged Met Office branch in

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_METO_MERCATOR_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8329 r8992  
    113113   INTEGER, PARAMETER ::   jpr_wper   = 48   ! Mean wave period 
    114114   INTEGER, PARAMETER ::   jpr_wnum   = 49   ! Mean wavenumber 
    115    INTEGER, PARAMETER ::   jpr_wstrf  = 50   ! Stress fraction adsorbed by waves 
     115   INTEGER, PARAMETER ::   jpr_tauoc  = 50   ! Stress fraction adsorbed by waves 
    116116   INTEGER, PARAMETER ::   jpr_wdrag  = 51   ! Neutral surface drag coefficient 
    117117   INTEGER, PARAMETER ::   jpr_isf    = 52 
    118118   INTEGER, PARAMETER ::   jpr_icb    = 53 
    119  
    120    INTEGER, PARAMETER ::   jprcv      = 53   ! total number of fields received   
     119   INTEGER, PARAMETER ::   jpr_wfreq  = 54   ! Wave peak frequency 
     120   INTEGER, PARAMETER ::   jpr_tauwx  = 55   ! x component of the ocean stress from waves 
     121   INTEGER, PARAMETER ::   jpr_tauwy  = 56   ! y component of the ocean stress from waves 
     122 
     123   INTEGER, PARAMETER ::   jprcv      = 56   ! total number of fields received   
    121124 
    122125   INTEGER, PARAMETER ::   jps_fice   =  1   ! ice fraction sent to the atmosphere 
     
    165168   TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2                         
    166169   !                                   ! Received from the atmosphere 
    167    TYPE(FLD_C) ::   sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_dqnsdt, sn_rcv_qsr, sn_rcv_qns, sn_rcv_emp, sn_rcv_rnf 
     170   TYPE(FLD_C) ::   sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_tauw, sn_rcv_dqnsdt, sn_rcv_qsr, & 
     171                                                            sn_rcv_qns, sn_rcv_emp, sn_rcv_rnf 
    168172   TYPE(FLD_C) ::   sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2, sn_rcv_mslp, sn_rcv_icb, sn_rcv_isf                               
    169173   ! Send to waves  
    170174   TYPE(FLD_C) ::   sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev  
    171175   ! Received from waves  
    172    TYPE(FLD_C) ::   sn_rcv_hsig,sn_rcv_phioc,sn_rcv_sdrfx,sn_rcv_sdrfy,sn_rcv_wper,sn_rcv_wnum,sn_rcv_wstrf,sn_rcv_wdrag 
     176   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, & 
     177                    sn_rcv_wfreq 
    173178   !                                   ! Other namelist parameters 
    174179   INTEGER     ::   nn_cplmodel           ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 
     
    242247         &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau   , sn_rcv_dqnsdt, sn_rcv_qsr,      &  
    243248         &                  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_wstrf ,   & 
     249         &                  sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper  , sn_rcv_wnum  , sn_rcv_tauoc ,   & 
    245250         &                  sn_rcv_wdrag, sn_rcv_qns  , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   ,   & 
    246251         &                  sn_rcv_iceflx,sn_rcv_co2  , nn_cplmodel  , ln_usecplmask, sn_rcv_mslp  ,   & 
    247          &                  sn_rcv_icb , sn_rcv_isf 
     252         &                  sn_rcv_icb , sn_rcv_isf   , sn_rcv_wfreq , sn_rcv_tauw 
    248253 
    249254      !!--------------------------------------------------------------------- 
     
    295300         WRITE(numout,*)'      Mean wave period                = ', TRIM(sn_rcv_wper%cldes  ), ' (', TRIM(sn_rcv_wper%clcat  ), ')'  
    296301         WRITE(numout,*)'      Mean wave number                = ', TRIM(sn_rcv_wnum%cldes  ), ' (', TRIM(sn_rcv_wnum%clcat  ), ')'  
    297          WRITE(numout,*)'      Stress frac adsorbed by waves   = ', TRIM(sn_rcv_wstrf%cldes ), ' (', TRIM(sn_rcv_wstrf%clcat ), ')'  
     302         WRITE(numout,*)'      Wave peak frequency             = ', TRIM(sn_rcv_wfreq%cldes ), ' (', TRIM(sn_rcv_wfreq%clcat ), ')' 
     303         WRITE(numout,*)'      Stress frac adsorbed by waves   = ', TRIM(sn_rcv_tauoc%cldes ), ' (', TRIM(sn_rcv_tauoc%clcat ), ')'  
     304         WRITE(numout,*)'      Stress components by waves      = ', TRIM(sn_rcv_tauw%cldes  ), ' (', TRIM(sn_rcv_tauw%clcat  ), ')' 
    298305         WRITE(numout,*)'      Neutral surf drag coefficient   = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')'  
    299306         WRITE(numout,*)'  sent fields (multiple ice categories)' 
     
    578585         cpl_wper = .TRUE. 
    579586      ENDIF 
     587      srcv(jpr_wfreq)%clname = 'O_WFreq'     ! wave peak frequency  
     588      IF( TRIM(sn_rcv_wfreq%cldes ) == 'coupled' )  THEN 
     589         srcv(jpr_wfreq)%laction = .TRUE. 
     590         cpl_wfreq = .TRUE. 
     591      ENDIF 
    580592      srcv(jpr_wnum)%clname = 'O_WNum'       ! mean wave number 
    581593      IF( TRIM(sn_rcv_wnum%cldes ) == 'coupled' )  THEN 
     
    583595         cpl_wnum = .TRUE. 
    584596      ENDIF 
    585       srcv(jpr_wstrf)%clname = 'O_WStrf'     ! stress fraction adsorbed by the wave 
    586       IF( TRIM(sn_rcv_wstrf%cldes ) == 'coupled' )  THEN 
    587          srcv(jpr_wstrf)%laction = .TRUE. 
    588          cpl_wstrf = .TRUE. 
     597      srcv(jpr_tauoc)%clname = 'O_TauOce'    ! stress fraction adsorbed by the wave 
     598      IF( TRIM(sn_rcv_tauoc%cldes ) == 'coupled' )  THEN 
     599         srcv(jpr_tauoc)%laction = .TRUE. 
     600         cpl_tauoc = .TRUE. 
     601      ENDIF 
     602      srcv(jpr_tauwx)%clname = 'O_Tauwx'      ! ocean stress from wave in the x direction 
     603      srcv(jpr_tauwy)%clname = 'O_Tauwy'      ! ocean stress from wave in the y direction 
     604      IF( TRIM(sn_rcv_tauw%cldes ) == 'coupled' )  THEN 
     605         srcv(jpr_tauwx)%laction = .TRUE. 
     606         srcv(jpr_tauwy)%laction = .TRUE. 
     607         cpl_tauw = .TRUE. 
    589608      ENDIF 
    590609      srcv(jpr_wdrag)%clname = 'O_WDrag'     ! neutral surface drag coefficient 
     
    594613      ENDIF 
    595614      !  
     615      IF( srcv(jpr_tauoc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) & 
     616            CALL ctl_stop( 'More than one method for modifying the ocean stress has been selected ', & 
     617                                     '(sn_rcv_tauoc=coupled and sn_rcv_tauw=coupled)' ) 
     618      ! 
    596619      !                                                      ! ------------------------------- ! 
    597620      !                                                      !   OPA-SAS coupling - rcv by opa !    
     
    11651188      !                                                      ! ========================= !  
    11661189         IF( srcv(jpr_hsig)%laction ) hsw(:,:) = frcv(jpr_hsig)%z3(:,:,1) 
     1190      !  
     1191      !                                                      ! ========================= !   
     1192      !                                                      !    Wave peak frequency    !  
     1193      !                                                      ! ========================= !   
     1194         IF( srcv(jpr_wfreq)%laction ) wfreq(:,:) = frcv(jpr_wfreq)%z3(:,:,1) 
    11671195      ! 
    11681196      !                                                      ! ========================= !  
     
    11731201         ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode 
    11741202         IF( srcv(jpr_sdrftx)%laction .OR. srcv(jpr_sdrfty)%laction .OR. srcv(jpr_wper)%laction & 
    1175                                                                     .OR. srcv(jpr_hsig)%laction ) THEN 
     1203                                      .OR. srcv(jpr_hsig)%laction   .OR. srcv(jpr_wfreq)%laction ) THEN 
    11761204            CALL sbc_stokes() 
    11771205         ENDIF 
     
    11801208      !                                                      ! Stress adsorbed by waves  ! 
    11811209      !                                                      ! ========================= !  
    1182       IF( srcv(jpr_wstrf)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_wstrf)%z3(:,:,1) 
     1210      IF( srcv(jpr_tauoc)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_tauoc)%z3(:,:,1) 
     1211 
     1212      !                                                      ! ========================= !   
     1213      !                                                      ! Stress component by waves !  
     1214      !                                                      ! ========================= !   
     1215      IF( srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction .AND. ln_tauw ) THEN 
     1216         tauw_x(:,:) = frcv(jpr_tauwx)%z3(:,:,1) 
     1217         tauw_y(:,:) = frcv(jpr_tauwy)%z3(:,:,1) 
     1218      ENDIF 
    11831219 
    11841220      !                                                      ! ========================= !  
Note: See TracChangeset for help on using the changeset viewer.