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/dynldf_bilap.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/dynldf_bilap.F90

    r6486 r7649  
    1919   USE dom_oce         ! ocean space and time domain 
    2020   USE ldfdyn_oce      ! ocean dynamics: lateral physics 
     21   USE divcur          ! for dyn_vrt_dia 
    2122   ! 
    2223   USE in_out_manager  ! I/O manager 
     
    7576      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    7677      ! 
     78      INTEGER  :: id_dia_vrt_ldf_int  = 1      ! TODO remove once flags set properly 
     79      INTEGER  :: id_dia_vrt_ldf_mean = 1      ! TODO remove once flags set properly 
    7780      INTEGER  ::   ji, jj, jk                  ! dummy loop indices 
    78       REAL(wp) ::   zua, zva, zbt, ze2u, ze2v   ! temporary scalar 
     81      REAL(wp) ::   zbt, ze2u, ze2v             ! temporary scalar 
    7982      REAL(wp), POINTER, DIMENSION(:,:  ) :: zcu, zcv 
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: zuf, zut, zlu, zlv 
     83      REAL(wp), POINTER, DIMENSION(:,:,:) :: zuf, zut, zlu, zlv, zua, zva 
    8184      !!---------------------------------------------------------------------- 
    8285      ! 
     
    8487      ! 
    8588      CALL wrk_alloc( jpi, jpj,      zcu, zcv           ) 
    86       CALL wrk_alloc( jpi, jpj, jpk, zuf, zut, zlu, zlv )  
     89      CALL wrk_alloc( jpi, jpj, jpk, zuf, zut, zlu, zlv, zua, zva )  
    8790      ! 
    8891      IF( kt == nit000 .AND. lwp ) THEN 
     
    191194               ze2v = e1v(ji,jj) * fse3v(ji,jj,jk) 
    192195               ! horizontal biharmonic diffusive trends 
    193                zua = - ( zuf(ji  ,jj,jk) - zuf(ji,jj-1,jk) ) / ze2u   & 
    194                   &  + ( zut(ji+1,jj,jk) - zut(ji,jj  ,jk) ) / e1u(ji,jj) 
    195  
    196                zva = + ( zuf(ji,jj  ,jk) - zuf(ji-1,jj,jk) ) / ze2v   & 
    197                   &  + ( zut(ji,jj+1,jk) - zut(ji  ,jj,jk) ) / e2v(ji,jj) 
     196               zua(ji,jj,jk) = - ( zuf(ji  ,jj,jk) - zuf(ji,jj-1,jk) ) / ze2u   & 
     197                  &  + ( zut(ji+1,jj,jk) - zut(ji,jj  ,jk) ) / e1u(ji,jj)       & 
     198                  &  * ( fsahmu(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 
     199               zva(ji,jj,jk) = + ( zuf(ji,jj  ,jk) - zuf(ji-1,jj,jk) ) / ze2v   & 
     200                  &  + ( zut(ji,jj+1,jk) - zut(ji  ,jj,jk) ) / e2v(ji,jj)       & 
     201                  &  * ( fsahmv(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 
    198202               ! add it to the general momentum trends 
    199                ua(ji,jj,jk) = ua(ji,jj,jk) + zua * ( fsahmu(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 
    200                va(ji,jj,jk) = va(ji,jj,jk) + zva * ( fsahmv(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 
     203               ua(ji,jj,jk) = ua(ji,jj,jk) + zua(ji,jj,jk) 
     204               va(ji,jj,jk) = va(ji,jj,jk) + zva(ji,jj,jk) 
    201205            END DO 
    202206         END DO 
     
    205209      END DO                                           !   End of slab 
    206210      !                                                ! =============== 
     211      IF ( ( id_dia_vrt_ldf_int == 1 ) .or. ( id_dia_vrt_ldf_mean == 1 ) ) THEN 
     212          CALL dyn_vrt_dia(zua, zva, id_dia_vrt_ldf_int, id_dia_vrt_ldf_mean) 
     213      END IF 
     214      ! 
    207215      CALL wrk_dealloc( jpi, jpj,      zcu, zcv           ) 
    208       CALL wrk_dealloc( jpi, jpj, jpk, zuf, zut, zlu, zlv )  
     216      CALL wrk_dealloc( jpi, jpj, jpk, zuf, zut, zlu, zlv, zua, zva )  
    209217      ! 
    210218      IF( nn_timing == 1 )  CALL timing_stop('dyn_ldf_bilap') 
Note: See TracChangeset for help on using the changeset viewer.