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 3316 for branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90 – NEMO

Ignore:
Timestamp:
2012-02-21T17:00:02+01:00 (12 years ago)
Author:
gm
Message:

Ediag branche: #927 add 3D output for dyn & tracer trends

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90

    r3294 r3316  
    44   !! Ocean diagnostics:  momentum trends 
    55   !!===================================================================== 
    6    !! History :  1.0  !  04-2006  (L. Brunier, A-M. Treguier) Original code  
    7    !!            2.0  !  04-2008  (C. Talandier) New trends organization 
     6   !! History :  1.0  !  2006-01  (L. Brunier, A-M. Treguier) Original code  
     7   !!            2.0  !  2008-04  (C. Talandier) New trends organization 
     8   !!            3.5  !  2012-02  (G. Madec) regroup beta.V computation with pvo trend 
    89   !!---------------------------------------------------------------------- 
    910#if defined key_trdvor   ||   defined key_esopa 
     
    109110      !!      trends output in netCDF format using ioipsl 
    110111      !!---------------------------------------------------------------------- 
    111       ! 
    112112      INTEGER                     , INTENT(in   ) ::   ktrd       ! ocean trend index 
    113113      REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   putrdvor   ! u vorticity trend  
     
    229229      END DO 
    230230 
    231       ! Save Beta.V term to avoid average before Curl 
    232       ! Beta.V : intergration, no average 
    233       IF( ktrd == jpvor_bev ) THEN  
     231      ! Planetary vorticity: 2nd computation (Beta.V term) store the vertical sum 
     232      ! as Beta.V term need intergration, not average 
     233      IF( ktrd == jpvor_pvo ) THEN  
    234234         zubet(:,:) = zudpvor(:,:) 
    235235         zvbet(:,:) = zvdpvor(:,:) 
    236       ENDIF 
    237  
    238       ! Average except for Beta.V 
     236         DO ji = 1, jpim1 
     237            DO jj = 1, jpjm1 
     238               vortrd(ji,jj,jpvor_bev) = (    zvbet(ji+1,jj) - zvbet(ji,jj)     & 
     239                  &                       - ( zubet(ji,jj+1) - zubet(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 
     240            END DO 
     241         END DO 
     242         ! Average of the Curl and Surface mask 
     243         vortrd(:,:,jpvor_bev) = vortrd(:,:,jpvor_bev) * hur(:,:) * fmask(:,:,1) 
     244      ENDIF 
     245      ! 
     246      ! Average  
    239247      zudpvor(:,:) = zudpvor(:,:) * hur(:,:) 
    240248      zvdpvor(:,:) = zvdpvor(:,:) * hvr(:,:) 
    241     
     249      ! 
    242250      ! Curl 
    243251      DO ji=1,jpim1 
     
    247255         END DO 
    248256      END DO 
    249  
    250257      ! Surface mask 
    251258      vortrd(:,:,ktrd) = vortrd(:,:,ktrd) * fmask(:,:,1) 
    252  
    253       ! Special treatement for the Beta.V term 
    254       ! Compute the Curl of the Beta.V term which is not averaged 
    255       IF( ktrd == jpvor_bev ) THEN 
    256          DO ji=1,jpim1 
    257             DO jj=1,jpjm1 
    258                vortrd(ji,jj,jpvor_bev) = (    zvbet(ji+1,jj) - zvbet(ji,jj)     & 
    259                   &                       - ( zubet(ji,jj+1) - zubet(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 
    260             END DO 
    261          END DO 
    262  
    263          ! Average on the Curl 
    264          vortrd(:,:,jpvor_bev) = vortrd(:,:,jpvor_bev) * hur(:,:) 
    265  
    266          ! Surface mask 
    267          vortrd(:,:,jpvor_bev) = vortrd(:,:,jpvor_bev) * fmask(:,:,1) 
    268       ENDIF 
    269259    
    270260      IF( ndebug /= 0 ) THEN 
     
    330320 
    331321      ! Curl 
    332       DO ji=1,jpim1 
    333          DO jj=1,jpjm1 
     322      DO ji = 1, jpim1 
     323         DO jj = 1, jpjm1 
    334324            vor_avr(ji,jj) = (  ( zvn(ji+1,jj) - zvn(ji,jj) )    & 
    335325               &              - ( zun(ji,jj+1) - zun(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
Note: See TracChangeset for help on using the changeset viewer.