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 9033 for branches/2017/dev_merge_2017/NEMOGCM/NEMO – NEMO

Ignore:
Timestamp:
2017-12-14T11:29:10+01:00 (6 years ago)
Author:
timgraham
Message:

Commit final files from merge of NEMOGCM and some fixes for waves (taooc renamed tauwoc)

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO
Files:
6 edited

Legend:

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

    r9023 r9033  
    5858   LOGICAL , PUBLIC ::   ln_cdgw        !: true if neutral drag coefficient from wave model 
    5959   LOGICAL , PUBLIC ::   ln_sdw         !: true if 3d stokes drift from wave model 
    60    LOGICAL , PUBLIC ::   ln_tauoc       !: true if normalized stress from wave is used 
     60   LOGICAL , PUBLIC ::   ln_tauwoc       !: true if normalized stress from wave is used 
    6161   LOGICAL , PUBLIC ::   ln_tauw        !: true if ocean stress components from wave is used 
    6262   LOGICAL , PUBLIC ::   ln_stcor       !: true if Stokes-Coriolis term is used 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90

    r9019 r9033  
    236236      IF ( ln_wave ) THEN 
    237237      !Activated wave module but neither drag nor stokes drift activated 
    238          IF ( .NOT.(ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor ) )   THEN 
    239             CALL ctl_warn( 'Ask for wave coupling but ln_cdgw=F, ln_sdw=F, ln_tauoc=F, ln_stcor=F') 
     238         IF ( .NOT.(ln_cdgw .OR. ln_sdw .OR. ln_tauwoc .OR. ln_stcor ) )   THEN 
     239            CALL ctl_warn( 'Ask for wave coupling but ln_cdgw=F, ln_sdw=F, ln_tauwoc=F, ln_stcor=F') 
    240240      !drag coefficient read from wave model definable only with mfs bulk formulae and core  
    241241         ELSEIF (ln_cdgw .AND. .NOT. ln_NCAR )       THEN        
     
    245245         ENDIF 
    246246      ELSE 
    247       IF ( ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor )                &  
     247      IF ( ln_cdgw .OR. ln_sdw .OR. ln_tauwoc .OR. ln_stcor )                &  
    248248         &   CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but asked coupling ',    & 
    249249         &                  'with drag coefficient (ln_cdgw =T) '  ,                        & 
    250250         &                  'or Stokes Drift (ln_sdw=T) ' ,                                 & 
    251          &                  'or ocean stress modification due to waves (ln_tauoc=T) ',      &   
     251         &                  'or ocean stress modification due to waves (ln_tauwoc=T) ',      &   
    252252         &                  'or Stokes-Coriolis term (ln_stcori=T)'  ) 
    253253      ENDIF  
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r9023 r9033  
    109109   INTEGER, PARAMETER ::   jpr_wper   = 48   ! Mean wave period 
    110110   INTEGER, PARAMETER ::   jpr_wnum   = 49   ! Mean wavenumber 
    111    INTEGER, PARAMETER ::   jpr_tauoc  = 50   ! Stress fraction adsorbed by waves 
     111   INTEGER, PARAMETER ::   jpr_tauwoc  = 50   ! Stress fraction adsorbed by waves 
    112112   INTEGER, PARAMETER ::   jpr_wdrag  = 51   ! Neutral surface drag coefficient 
    113113   INTEGER, PARAMETER ::   jpr_isf    = 52 
     
    179179   TYPE(FLD_C) ::   sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev  
    180180   ! Received from waves  
    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, & 
     181   TYPE(FLD_C) ::   sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_tauwoc, & 
    182182                    sn_rcv_wdrag, sn_rcv_wfreq 
    183183   !                                   ! Other namelist parameters 
     
    252252         &                  sn_rcv_w10m  , sn_rcv_taumod, sn_rcv_tau  , sn_rcv_dqnsdt, sn_rcv_qsr  ,   &  
    253253         &                  sn_snd_ifrac , sn_snd_crtw  , sn_snd_wlev , sn_rcv_hsig  , sn_rcv_phioc,   &  
    254          &                  sn_rcv_sdrfx , sn_rcv_sdrfy , sn_rcv_wper , sn_rcv_wnum  , sn_rcv_wstrf,   & 
     254         &                  sn_rcv_sdrfx , sn_rcv_sdrfy , sn_rcv_wper , sn_rcv_wnum  , sn_rcv_tauwoc,   & 
    255255         &                  sn_rcv_wdrag , sn_rcv_qns   , sn_rcv_emp  , sn_rcv_rnf   , sn_rcv_cal  ,   & 
    256256         &                  sn_rcv_iceflx, sn_rcv_co2   , nn_cplmodel , ln_usecplmask, sn_rcv_mslp ,   & 
     
    304304         WRITE(numout,*)'      Mean wave number                = ', TRIM(sn_rcv_wnum%cldes  ), ' (', TRIM(sn_rcv_wnum%clcat  ), ')'  
    305305         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 ), ')'  
     306         WRITE(numout,*)'      Stress frac adsorbed by waves   = ', TRIM(sn_rcv_tauwoc%cldes ), ' (', TRIM(sn_rcv_tauwoc%clcat ), ')'  
    307307         WRITE(numout,*)'      Stress components by waves      = ', TRIM(sn_rcv_tauw%cldes  ), ' (', TRIM(sn_rcv_tauw%clcat  ), ')' 
    308308         WRITE(numout,*)'      Neutral surf drag coefficient   = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')'  
     
    612612         cpl_wnum = .TRUE. 
    613613      ENDIF 
    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. 
     614      srcv(jpr_tauwoc)%clname = 'O_TauOce'    ! stress fraction adsorbed by the wave 
     615      IF( TRIM(sn_rcv_tauwoc%cldes ) == 'coupled' )  THEN 
     616         srcv(jpr_tauwoc)%laction = .TRUE. 
     617         cpl_tauwoc = .TRUE. 
    618618      ENDIF 
    619619      srcv(jpr_tauwx)%clname = 'O_Tauwx'      ! ocean stress from wave in the x direction 
     
    629629         cpl_wdrag = .TRUE. 
    630630      ENDIF 
    631       IF( srcv(jpr_tauoc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) & 
     631      IF( srcv(jpr_tauwoc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) & 
    632632            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)' ) 
     633                                     '(sn_rcv_tauwoc=coupled and sn_rcv_tauw=coupled)' ) 
    634634      ! 
    635635      !                                                      ! ------------------------------- ! 
     
    13031303      !                                                      !    Vertical mixing Qiao   ! 
    13041304      !                                                      ! ========================= !  
    1305          IF( srcv(jpr_wnum)%laction .AND. ln_zdfqiao ) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 
     1305         IF( srcv(jpr_wnum)%laction .AND. ln_zdfswm ) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 
    13061306 
    13071307         ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode 
     
    13141314      !                                                      ! Stress adsorbed by waves  ! 
    13151315      !                                                      ! ========================= !  
    1316       IF( srcv(jpr_tauoc)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_tauoc)%z3(:,:,1) 
     1316      IF( srcv(jpr_tauwoc)%laction .AND. ln_tauwoc ) tauwoc_wave(:,:) = frcv(jpr_tauwoc)%z3(:,:,1) 
    13171317 
    13181318      !                                                      ! ========================= !   
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r9023 r9033  
    9696         &             ln_traqsr, ln_dm2dc ,                                         & 
    9797         &             ln_rnf   , nn_fwb   , ln_ssr   , ln_isf    , ln_apr_dyn ,     & 
    98          &             ln_wave  , ln_cdgw  , ln_sdw   , ln_tauoc  , ln_stcor   ,     & 
     98         &             ln_wave  , ln_cdgw  , ln_sdw   , ln_tauwoc  , ln_stcor   ,     & 
    9999         &             ln_tauw  , nn_lsm, nn_sdrift 
    100100      !!---------------------------------------------------------------------- 
     
    156156         WRITE(numout,*) '               Stokes drift corr. to vert. velocity ln_sdw        = ', ln_sdw 
    157157         WRITE(numout,*) '                  vertical parametrization          nn_sdrift     = ', nn_sdrift 
    158          WRITE(numout,*) '               wave modified ocean stress           ln_tauoc      = ', ln_tauoc 
     158         WRITE(numout,*) '               wave modified ocean stress           ln_tauwoc      = ', ln_tauwoc 
    159159         WRITE(numout,*) '               wave modified ocean stress component ln_tauw       = ', ln_tauw 
    160160         WRITE(numout,*) '               Stokes coriolis term                 ln_stcor      = ', ln_stcor 
     
    166166            CALL ctl_stop( 'The chosen nn_sdrift for Stokes drift vertical velocity must be 0, 1, or 2' ) 
    167167      ENDIF 
    168       IF( ln_tauoc .AND. ln_tauw ) & 
     168      IF( ln_tauwoc .AND. ln_tauw ) & 
    169169         CALL ctl_stop( 'More than one method for modifying the ocean stress has been selected ', & 
    170                                   '(ln_tauoc=.true. and ln_tauw=.true.)' ) 
    171       IF( ln_tauoc ) & 
    172          CALL ctl_warn( 'You are subtracting the wave stress to the ocean (ln_tauoc=.true.)' ) 
     170                                  '(ln_tauwoc=.true. and ln_tauw=.true.)' ) 
     171      IF( ln_tauwoc ) & 
     172         CALL ctl_warn( 'You are subtracting the wave stress to the ocean (ln_tauwoc=.true.)' ) 
    173173      IF( ln_tauw ) & 
    174174         CALL ctl_warn( 'The wave modified ocean stress components are used (ln_tauw=.true.) ', & 
     
    409409      IF( ln_mixcpl )          CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice )   ! forced-coupled mixed formulation after forcing 
    410410      ! 
    411       IF ( ln_wave .AND. (ln_tauoc .OR. ln_tauw) ) CALL sbc_wstress( )      ! Wind stress provided by waves  
     411      IF ( ln_wave .AND. (ln_tauwoc .OR. ln_tauw) ) CALL sbc_wstress( )      ! Wind stress provided by waves  
    412412      ! 
    413413      !                                            !==  Misc. Options  ==! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r9029 r9033  
    4545   LOGICAL, PUBLIC ::   cpl_wfreq  = .FALSE. 
    4646   LOGICAL, PUBLIC ::   cpl_wnum   = .FALSE. 
    47    LOGICAL, PUBLIC ::   cpl_tauoc  = .FALSE. 
     47   LOGICAL, PUBLIC ::   cpl_tauwoc  = .FALSE. 
    4848   LOGICAL, PUBLIC ::   cpl_tauw   = .FALSE. 
    4949   LOGICAL, PUBLIC ::   cpl_wdrag  = .FALSE. 
     
    5959   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_sd      ! structure of input fields (file informations, fields read) Stokes Drift 
    6060   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_wn      ! structure of input fields (file informations, fields read) wave number for Qiao 
    61    TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tauoc   ! structure of input fields (file informations, fields read) normalized wave stress into the ocean 
     61   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tauwoc   ! structure of input fields (file informations, fields read) normalized wave stress into the ocean 
    6262   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tauw    ! structure of input fields (file informations, fields read) ocean stress components from wave model 
    6363 
     
    255255      INTEGER  ::   jj, ji   ! dummy loop argument 
    256256      ! 
    257       IF( ln_tauoc ) THEN 
     257      IF( ln_tauwoc ) THEN 
    258258         utau(:,:) = utau(:,:)*tauoc_wave(:,:) 
    259259         vtau(:,:) = vtau(:,:)*tauoc_wave(:,:) 
     
    300300      ENDIF 
    301301 
    302       IF( ln_tauoc .AND. .NOT. cpl_tauoc ) THEN    !==  Wave induced stress  ==! 
    303          CALL fld_read( kt, nn_fsbc, sf_tauoc )          ! read wave norm stress from external forcing 
    304          tauoc_wave(:,:) = sf_tauoc(1)%fnow(:,:,1) 
     302      IF( ln_tauwoc .AND. .NOT. cpl_tauwoc ) THEN    !==  Wave induced stress  ==! 
     303         CALL fld_read( kt, nn_fsbc, sf_tauwoc )          ! read wave norm stress from external forcing 
     304         tauoc_wave(:,:) = sf_tauwoc(1)%fnow(:,:,1) 
    305305      ENDIF 
    306306 
     
    362362      TYPE(FLD_N)            ::  sn_cdg, sn_usd, sn_vsd,  & 
    363363                             &   sn_hsw, sn_wmp, sn_wfr, sn_wnum, & 
    364                              &   sn_tauoc, sn_tauwx, sn_tauwy      ! informations about the fields to be read 
     364                             &   sn_tauwoc, sn_tauwx, sn_tauwy      ! informations about the fields to be read 
    365365      ! 
    366366      NAMELIST/namsbc_wave/  sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wfr, & 
    367                              sn_wnum, sn_tauoc, sn_tauwx, sn_tauwy 
     367                             sn_wnum, sn_tauwoc, sn_tauwx, sn_tauwy 
    368368      !!--------------------------------------------------------------------- 
    369369      ! 
     
    389389      ENDIF 
    390390 
    391       IF( ln_tauoc ) THEN 
    392          IF( .NOT. cpl_tauoc ) THEN 
    393             ALLOCATE( sf_tauoc(1), STAT=ierror )           !* allocate and fill sf_wave with sn_tauoc 
     391      IF( ln_tauwoc ) THEN 
     392         IF( .NOT. cpl_tauwoc ) THEN 
     393            ALLOCATE( sf_tauwoc(1), STAT=ierror )           !* allocate and fill sf_wave with sn_tauwoc 
    394394            IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wave structure' ) 
    395395            ! 
    396                                     ALLOCATE( sf_tauoc(1)%fnow(jpi,jpj,1)   ) 
    397             IF( sn_tauoc%ln_tint )  ALLOCATE( sf_tauoc(1)%fdta(jpi,jpj,1,2) ) 
    398             CALL fld_fill( sf_tauoc, (/ sn_tauoc /), cn_dir, 'sbc_wave_init', 'Wave module', 'namsbc_wave' ) 
     396                                    ALLOCATE( sf_tauwoc(1)%fnow(jpi,jpj,1)   ) 
     397            IF( sn_tauwoc%ln_tint )  ALLOCATE( sf_tauwoc(1)%fdta(jpi,jpj,1,2) ) 
     398            CALL fld_fill( sf_tauwoc, (/ sn_tauwoc /), cn_dir, 'sbc_wave_init', 'Wave module', 'namsbc_wave' ) 
    399399         ENDIF 
    400400         ALLOCATE( tauoc_wave(jpi,jpj) ) 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90

    r9019 r9033  
    2929#if defined key_agrif 
    3030   USE agrif_top_sponge ! tracers sponges 
    31    USE agrif_top_update ! tracers updates 
    3231#endif 
    3332 
     
    8281         IF( ln_trcdmp_clo )    CALL trc_dmp_clo( kt )      ! internal damping trends on closed seas only 
    8382 
    84 #if defined key_agrif 
    85          IF( .NOT.Agrif_Root()) CALL Agrif_Update_Trc( kt ) ! Update tracer at AGRIF zoom boundaries : children only 
    86 #endif 
    8783         ! 
    8884      ELSE                                               ! 1D vertical configuration 
Note: See TracChangeset for help on using the changeset viewer.