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

Ignore:
Timestamp:
2017-12-13T18:08:50+01:00 (6 years ago)
Author:
timgraham
Message:

Merged METO_MERCATOR branch and resolved all conflicts in OPA_SRC

File:
1 edited

Legend:

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

    r9019 r9023  
    109109   INTEGER, PARAMETER ::   jpr_wper   = 48   ! Mean wave period 
    110110   INTEGER, PARAMETER ::   jpr_wnum   = 49   ! Mean wavenumber 
    111    INTEGER, PARAMETER ::   jpr_wstrf  = 50   ! Stress fraction adsorbed by waves 
     111   INTEGER, PARAMETER ::   jpr_tauoc  = 50   ! Stress fraction adsorbed by waves 
    112112   INTEGER, PARAMETER ::   jpr_wdrag  = 51   ! Neutral surface drag coefficient 
    113113   INTEGER, PARAMETER ::   jpr_isf    = 52 
    114114   INTEGER, PARAMETER ::   jpr_icb    = 53 
    115    INTEGER, PARAMETER ::   jpr_ts_ice = 54   ! Sea ice surface temp 
    116  
    117    INTEGER, PARAMETER ::   jprcv      = 54   ! total number of fields received   
     115   INTEGER, PARAMETER ::   jpr_wfreq  = 54   ! Wave peak frequency 
     116   INTEGER, PARAMETER ::   jpr_tauwx  = 55   ! x component of the ocean stress from waves 
     117   INTEGER, PARAMETER ::   jpr_tauwy  = 56   ! y component of the ocean stress from waves 
     118   INTEGER, PARAMETER ::   jpr_ts_ice = 57   ! Sea ice surface temp 
     119 
     120   INTEGER, PARAMETER ::   jprcv      = 57   ! total number of fields received   
    118121 
    119122   INTEGER, PARAMETER ::   jps_fice   =  1   ! ice fraction sent to the atmosphere 
     
    170173      &             sn_snd_thick1, sn_snd_cond, sn_snd_mpnd , sn_snd_sstfrz, sn_snd_ttilyr 
    171174   !                                   ! Received from the atmosphere 
    172    TYPE(FLD_C) ::   sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_dqnsdt, sn_rcv_qsr,  & 
     175   TYPE(FLD_C) ::   sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_tauw, sn_rcv_dqnsdt, sn_rcv_qsr,  & 
    173176      &             sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf, sn_rcv_ts_ice 
    174177   TYPE(FLD_C) ::   sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2, sn_rcv_mslp, sn_rcv_icb, sn_rcv_isf 
     
    176179   TYPE(FLD_C) ::   sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev  
    177180   ! Received from waves  
    178    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 
     181   TYPE(FLD_C) ::   sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_tauoc, & 
     182                    sn_rcv_wdrag, sn_rcv_wfreq 
    179183   !                                   ! Other namelist parameters 
    180184   INTEGER     ::   nn_cplmodel           ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 
     
    251255         &                  sn_rcv_wdrag , sn_rcv_qns   , sn_rcv_emp  , sn_rcv_rnf   , sn_rcv_cal  ,   & 
    252256         &                  sn_rcv_iceflx, sn_rcv_co2   , nn_cplmodel , ln_usecplmask, sn_rcv_mslp ,   & 
    253          &                  sn_rcv_icb   , sn_rcv_isf   , nn_cats_cpl   
     257         &                  sn_rcv_icb   , sn_rcv_isf   , sn_rcv_wfreq , sn_rcv_tauw, nn_cats_cpl   
    254258 
    255259      !!--------------------------------------------------------------------- 
     
    299303         WRITE(numout,*)'      Mean wave period                = ', TRIM(sn_rcv_wper%cldes  ), ' (', TRIM(sn_rcv_wper%clcat  ), ')'  
    300304         WRITE(numout,*)'      Mean wave number                = ', TRIM(sn_rcv_wnum%cldes  ), ' (', TRIM(sn_rcv_wnum%clcat  ), ')'  
    301          WRITE(numout,*)'      Stress frac adsorbed by waves   = ', TRIM(sn_rcv_wstrf%cldes ), ' (', TRIM(sn_rcv_wstrf%clcat ), ')'  
     305         WRITE(numout,*)'      Wave peak frequency             = ', TRIM(sn_rcv_wfreq%cldes ), ' (', TRIM(sn_rcv_wfreq%clcat ), ')' 
     306         WRITE(numout,*)'      Stress frac adsorbed by waves   = ', TRIM(sn_rcv_tauoc%cldes ), ' (', TRIM(sn_rcv_tauoc%clcat ), ')'  
     307         WRITE(numout,*)'      Stress components by waves      = ', TRIM(sn_rcv_tauw%cldes  ), ' (', TRIM(sn_rcv_tauw%clcat  ), ')' 
    302308         WRITE(numout,*)'      Neutral surf drag coefficient   = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')'  
    303309         WRITE(numout,*)'      Sea ice surface skin temperature= ', TRIM(sn_rcv_ts_ice%cldes), ' (', TRIM(sn_rcv_ts_ice%clcat), ')'  
     
    596602         cpl_wper = .TRUE. 
    597603      ENDIF 
     604      srcv(jpr_wfreq)%clname = 'O_WFreq'     ! wave peak frequency  
     605      IF( TRIM(sn_rcv_wfreq%cldes ) == 'coupled' )  THEN 
     606         srcv(jpr_wfreq)%laction = .TRUE. 
     607         cpl_wfreq = .TRUE. 
     608      ENDIF 
    598609      srcv(jpr_wnum)%clname = 'O_WNum'       ! mean wave number 
    599610      IF( TRIM(sn_rcv_wnum%cldes ) == 'coupled' )  THEN 
     
    601612         cpl_wnum = .TRUE. 
    602613      ENDIF 
    603       srcv(jpr_wstrf)%clname = 'O_WStrf'     ! stress fraction adsorbed by the wave 
    604       IF( TRIM(sn_rcv_wstrf%cldes ) == 'coupled' )  THEN 
    605          srcv(jpr_wstrf)%laction = .TRUE. 
    606          cpl_wstrf = .TRUE. 
     614      srcv(jpr_tauoc)%clname = 'O_TauOce'    ! stress fraction adsorbed by the wave 
     615      IF( TRIM(sn_rcv_tauoc%cldes ) == 'coupled' )  THEN 
     616         srcv(jpr_tauoc)%laction = .TRUE. 
     617         cpl_tauoc = .TRUE. 
     618      ENDIF 
     619      srcv(jpr_tauwx)%clname = 'O_Tauwx'      ! ocean stress from wave in the x direction 
     620      srcv(jpr_tauwy)%clname = 'O_Tauwy'      ! ocean stress from wave in the y direction 
     621      IF( TRIM(sn_rcv_tauw%cldes ) == 'coupled' )  THEN 
     622         srcv(jpr_tauwx)%laction = .TRUE. 
     623         srcv(jpr_tauwy)%laction = .TRUE. 
     624         cpl_tauw = .TRUE. 
    607625      ENDIF 
    608626      srcv(jpr_wdrag)%clname = 'O_WDrag'     ! neutral surface drag coefficient 
     
    611629         cpl_wdrag = .TRUE. 
    612630      ENDIF 
     631      IF( srcv(jpr_tauoc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) & 
     632            CALL ctl_stop( 'More than one method for modifying the ocean stress has been selected ', & 
     633                                     '(sn_rcv_tauoc=coupled and sn_rcv_tauw=coupled)' ) 
     634      ! 
    613635      !                                                      ! ------------------------------- ! 
    614636      !                                                      !   OPA-SAS coupling - rcv by opa !    
     
    12531275      ! 
    12541276      IF( ln_sdw ) THEN  ! Stokes Drift correction activated 
    1255          !                                                   ! ========================= !  
    1256          !                                                   !       Stokes drift u      ! 
    1257          !                                                   ! ========================= !  
    1258          IF( srcv(jpr_sdrftx)%laction )   ut0sd(:,:) = frcv(jpr_sdrftx)%z3(:,:,1) 
    1259          ! 
    1260          !                                                   ! ========================= !  
    1261          !                                                   !       Stokes drift v      ! 
    1262          !                                                   ! ========================= !  
    1263          IF( srcv(jpr_sdrfty)%laction )   vt0sd(:,:) = frcv(jpr_sdrfty)%z3(:,:,1) 
    1264          ! 
    1265          !                                                   ! ========================= !  
    1266          !                                                   !      Wave mean period     ! 
    1267          !                                                   ! ========================= !  
    1268          IF( srcv(jpr_wper)%laction   )   wmp(:,:) = frcv(jpr_wper)%z3(:,:,1) 
    1269          ! 
    1270          !                                                   ! ========================= !  
    1271          !                                                   !  Significant wave height  ! 
    1272          !                                                   ! ========================= !  
    1273          IF( srcv(jpr_hsig)%laction   )   hsw(:,:) = frcv(jpr_hsig)%z3(:,:,1) 
    1274          ! 
    1275          !                                                   ! ========================= !  
    1276          !                                                   !    surface wave mixing    ! 
    1277          !                                                   ! ========================= !  
    1278          IF( srcv(jpr_wnum)%laction .AND. ln_zdfswm )   wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 
     1277      !                                                      ! ========================= !  
     1278      !                                                      !       Stokes drift u      ! 
     1279      !                                                      ! ========================= !  
     1280         IF( srcv(jpr_sdrftx)%laction ) ut0sd(:,:) = frcv(jpr_sdrftx)%z3(:,:,1) 
     1281      ! 
     1282      !                                                      ! ========================= !  
     1283      !                                                      !       Stokes drift v      ! 
     1284      !                                                      ! ========================= !  
     1285         IF( srcv(jpr_sdrfty)%laction ) vt0sd(:,:) = frcv(jpr_sdrfty)%z3(:,:,1) 
     1286      ! 
     1287      !                                                      ! ========================= !  
     1288      !                                                      !      Wave mean period     ! 
     1289      !                                                      ! ========================= !  
     1290         IF( srcv(jpr_wper)%laction ) wmp(:,:) = frcv(jpr_wper)%z3(:,:,1) 
     1291      ! 
     1292      !                                                      ! ========================= !  
     1293      !                                                      !  Significant wave height  ! 
     1294      !                                                      ! ========================= !  
     1295         IF( srcv(jpr_hsig)%laction ) hsw(:,:) = frcv(jpr_hsig)%z3(:,:,1) 
     1296      !  
     1297      !                                                      ! ========================= !   
     1298      !                                                      !    Wave peak frequency    !  
     1299      !                                                      ! ========================= !   
     1300         IF( srcv(jpr_wfreq)%laction ) wfreq(:,:) = frcv(jpr_wfreq)%z3(:,:,1) 
     1301      ! 
     1302      !                                                      ! ========================= !  
     1303      !                                                      !    Vertical mixing Qiao   ! 
     1304      !                                                      ! ========================= !  
     1305         IF( srcv(jpr_wnum)%laction .AND. ln_zdfqiao ) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 
    12791306 
    12801307         ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode 
    12811308         IF( srcv(jpr_sdrftx)%laction .OR. srcv(jpr_sdrfty)%laction .OR. srcv(jpr_wper)%laction & 
    1282             &                                                       .OR. srcv(jpr_hsig)%laction ) THEN 
     1309                                      .OR. srcv(jpr_hsig)%laction   .OR. srcv(jpr_wfreq)%laction) THEN 
    12831310            CALL sbc_stokes() 
    12841311         ENDIF 
     
    12871314      !                                                      ! Stress adsorbed by waves  ! 
    12881315      !                                                      ! ========================= !  
    1289       IF( srcv(jpr_wstrf)%laction .AND. ln_tauoc )   tauoc_wave(:,:) = frcv(jpr_wstrf)%z3(:,:,1) 
     1316      IF( srcv(jpr_tauoc)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_tauoc)%z3(:,:,1) 
     1317 
     1318      !                                                      ! ========================= !   
     1319      !                                                      ! Stress component by waves !  
     1320      !                                                      ! ========================= !   
     1321      IF( srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction .AND. ln_tauw ) THEN 
     1322         tauw_x(:,:) = frcv(jpr_tauwx)%z3(:,:,1) 
     1323         tauw_y(:,:) = frcv(jpr_tauwy)%z3(:,:,1) 
     1324      ENDIF 
    12901325 
    12911326      !                                                      ! ========================= !  
Note: See TracChangeset for help on using the changeset viewer.