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 7649 for branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90 – NEMO

Ignore:
Timestamp:
2017-02-06T16:21:14+01:00 (7 years ago)
Author:
glong
Message:

dyn_vrt_dia subroutine added and calls added for most processes - spg, zdf, and bfr not yet done

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r6486 r7649  
    3838   USE wrk_nemo       ! Memory Allocation 
    3939   USE timing         ! Timing 
     40   USE divcur         ! For dyn_vrt_dia 
    4041 
    4142 
     
    560561      REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pva    ! total v-trend 
    561562      !! 
     563      INTEGER  :: id_dia_vrt_vor_int = 1                          ! TODO remove once flags set properly 
     564      INTEGER  :: id_dia_vrt_vor_mn  = 1                          ! TODO remove once flags set properly 
    562565      INTEGER  ::   ji, jj, jk                                    ! dummy loop indices 
    563566      INTEGER  ::   ierr                                          ! local integer 
    564       REAL(wp) ::   zfac12, zua, zva                              ! local scalars 
     567      REAL(wp) ::   zfac12                                        ! local scalars 
    565568      REAL(wp) ::   zmsk, ze3                                     ! local scalars 
    566569      !                                                           !  3D workspace  
    567570      REAL(wp), POINTER    , DIMENSION(:,:  )         :: zwx, zwy, zwz 
    568571      REAL(wp), POINTER    , DIMENSION(:,:  )         :: ztnw, ztne, ztsw, ztse 
     572      REAL(wp), POINTER    , DIMENSION(:,:,:)         :: zua, zva 
    569573#if defined key_vvl 
    570574      REAL(wp), POINTER    , DIMENSION(:,:,:)         :: ze3f     !  3D workspace (lk_vvl=T) 
     
    578582      CALL wrk_alloc( jpi, jpj,      zwx , zwy , zwz        )  
    579583      CALL wrk_alloc( jpi, jpj,      ztnw, ztne, ztsw, ztse )  
     584      CALL wrk_alloc( jpi, jpj, jpk, zua, zva               )  
    580585#if defined key_vvl 
    581586      CALL wrk_alloc( jpi, jpj, jpk, ze3f                   ) 
     
    687692         DO jj = 2, jpjm1 
    688693            DO ji = fs_2, fs_jpim1   ! vector opt. 
    689                zua = + zfac12 / e1u(ji,jj) * (  ztne(ji,jj  ) * zwy(ji  ,jj  ) + ztnw(ji+1,jj) * zwy(ji+1,jj  )   & 
    690                   &                           + ztse(ji,jj  ) * zwy(ji  ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 
    691                zva = - zfac12 / e2v(ji,jj) * (  ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji  ,jj+1)   & 
    692                   &                           + ztnw(ji,jj  ) * zwx(ji-1,jj  ) + ztne(ji,jj  ) * zwx(ji  ,jj  ) ) 
    693                pua(ji,jj,jk) = pua(ji,jj,jk) + zua 
    694                pva(ji,jj,jk) = pva(ji,jj,jk) + zva 
     694               zua(ji,jj,jk) = + zfac12 / e1u(ji,jj) * (  ztne(ji,jj  ) * zwy(ji  ,jj  )     & 
     695                  &                                     + ztnw(ji+1,jj) * zwy(ji+1,jj  )     & 
     696                  &                                     + ztse(ji,jj  ) * zwy(ji  ,jj-1)     & 
     697                  &                                     + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 
     698               zva(ji,jj,jk) = - zfac12 / e2v(ji,jj) * (  ztsw(ji,jj+1) * zwx(ji-1,jj+1)     & 
     699                  &                                     + ztse(ji,jj+1) * zwx(ji  ,jj+1)     & 
     700                  &                                     + ztnw(ji,jj  ) * zwx(ji-1,jj  )     & 
     701                  &                                     + ztne(ji,jj  ) * zwx(ji  ,jj  ) ) 
     702               pua(ji,jj,jk) = pua(ji,jj,jk) + zua(ji,jj,jk) 
     703               pva(ji,jj,jk) = pva(ji,jj,jk) + zva(ji,jj,jk) 
    695704            END DO   
    696705         END DO   
     
    698707      END DO                                           !   End of slab 
    699708      !                                                ! =============== 
     709      IF ( ( id_dia_vrt_vor_int == 1 ) .or. ( id_dia_vrt_vor_mn == 1 ) ) THEN 
     710          CALL dyn_vrt_dia(zua, zva, id_dia_vrt_vor_int, id_dia_vrt_vor_mn) 
     711      END IF 
     712      ! 
    700713      CALL wrk_dealloc( jpi, jpj,      zwx , zwy , zwz        )  
    701714      CALL wrk_dealloc( jpi, jpj,      ztnw, ztne, ztsw, ztse )  
     715      CALL wrk_dealloc( jpi, jpj, jpk, zua, zva               )  
    702716#if defined key_vvl 
    703717      CALL wrk_dealloc( jpi, jpj, jpk, ze3f                   ) 
Note: See TracChangeset for help on using the changeset viewer.