Ignore:
Timestamp:
2012-03-12T15:44:43+01:00 (9 years ago)
Author:
gm
Message:

Ediag branche: #927 add Kinetic Energy trend diagnostics (trdken.F90)

File:
1 edited

Legend:

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

    r3318 r3325  
    184184 
    185185 
    186    SUBROUTINE trd_glo_init 
    187       !!--------------------------------------------------------------------- 
    188       !!                  ***  ROUTINE trd_glo_init  *** 
    189       !!  
    190       !! ** Purpose :   Read the namtrd namelist 
    191       !!---------------------------------------------------------------------- 
    192       INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    193       !!---------------------------------------------------------------------- 
    194  
    195       IF(lwp) THEN 
    196          WRITE(numout,*) 
    197          WRITE(numout,*) 'trd_glo_init : integral constraints properties trends' 
    198          WRITE(numout,*) '~~~~~~~~~~~~~' 
    199       ENDIF 
    200  
    201       ! Total volume at t-points: 
    202       tvolt = 0._wp 
    203       DO jk = 1, jpkm1 
    204          tvolt = SUM( e1e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) ) 
    205       END DO 
    206       IF( lk_mpp )   CALL mpp_sum( tvolt )   ! sum over the global domain 
    207  
    208       IF(lwp) WRITE(numout,*) '                total ocean volume at T-point   tvolt = ',tvolt 
    209  
    210       ! Initialization of potential to kinetic energy conversion 
    211       rpktrd = 0._wp 
    212  
    213       ! Total volume at u-, v- points: 
    214       tvolu = 0._wp 
    215       tvolv = 0._wp 
    216  
    217       DO jk = 1, jpk 
    218          DO jj = 2, jpjm1 
    219             DO ji = fs_2, fs_jpim1   ! vector opt. 
    220                tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk) 
    221                tvolv = tvolv + e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) 
    222             END DO 
    223          END DO 
    224       END DO 
    225       IF( lk_mpp )   CALL mpp_sum( tvolu )   ! sums over the global domain 
    226       IF( lk_mpp )   CALL mpp_sum( tvolv ) 
    227  
    228       IF(lwp) THEN 
    229          WRITE(numout,*) '                total ocean volume at U-point   tvolu = ',tvolu 
    230          WRITE(numout,*) '                total ocean volume at V-point   tvolv = ',tvolv 
    231       ENDIF 
    232       ! 
    233    END SUBROUTINE trd_glo_init 
    234  
    235  
    236186   SUBROUTINE glo_dyn_wri( kt ) 
    237187      !!--------------------------------------------------------------------- 
     
    556506   END SUBROUTINE glo_tra_wri 
    557507 
     508 
     509   SUBROUTINE trd_glo_init 
     510      !!--------------------------------------------------------------------- 
     511      !!                  ***  ROUTINE trd_glo_init  *** 
     512      !!  
     513      !! ** Purpose :   Read the namtrd namelist 
     514      !!---------------------------------------------------------------------- 
     515      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     516      !!---------------------------------------------------------------------- 
     517 
     518      IF(lwp) THEN 
     519         WRITE(numout,*) 
     520         WRITE(numout,*) 'trd_glo_init : integral constraints properties trends' 
     521         WRITE(numout,*) '~~~~~~~~~~~~~' 
     522      ENDIF 
     523 
     524      ! Total volume at t-points: 
     525      tvolt = 0._wp 
     526      DO jk = 1, jpkm1 
     527         tvolt = SUM( e1e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) ) 
     528      END DO 
     529      IF( lk_mpp )   CALL mpp_sum( tvolt )   ! sum over the global domain 
     530 
     531      IF(lwp) WRITE(numout,*) '                total ocean volume at T-point   tvolt = ',tvolt 
     532 
     533      ! Initialization of potential to kinetic energy conversion 
     534      rpktrd = 0._wp 
     535 
     536      ! Total volume at u-, v- points: 
     537!!gm :  bug?  je suis quasi sur que le produit des tmask_i ne correspond pas exactement au umask_i et vmask_i ! 
     538      tvolu = 0._wp 
     539      tvolv = 0._wp 
     540 
     541      DO jk = 1, jpk 
     542         DO jj = 2, jpjm1 
     543            DO ji = fs_2, fs_jpim1   ! vector opt. 
     544               tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk) 
     545               tvolv = tvolv + e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) 
     546            END DO 
     547         END DO 
     548      END DO 
     549      IF( lk_mpp )   CALL mpp_sum( tvolu )   ! sums over the global domain 
     550      IF( lk_mpp )   CALL mpp_sum( tvolv ) 
     551 
     552      IF(lwp) THEN 
     553         WRITE(numout,*) '                total ocean volume at U-point   tvolu = ',tvolu 
     554         WRITE(numout,*) '                total ocean volume at V-point   tvolv = ',tvolv 
     555      ENDIF 
     556      ! 
     557   END SUBROUTINE trd_glo_init 
     558 
    558559   !!====================================================================== 
    559560END MODULE trdglo 
Note: See TracChangeset for help on using the changeset viewer.