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 455 for trunk/NEMO/OPA_SRC/DYN/dynzdf_imp.F90 – NEMO

Ignore:
Timestamp:
2006-05-10T18:53:54+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_048:RB: reorganization of dynamics part, in addition change atsk to jki, suppress dynhpg_atsk.F90 dynzdf_imp_atsk.F90 dynzdf_iso.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r258 r455  
    2020   USE in_out_manager  ! I/O manager 
    2121   USE taumod          ! surface ocean stress 
    22    USE trdmod          ! ocean dynamics trends  
    23    USE trdmod_oce      ! ocean variables trends 
    2422   USE prtctl          ! Print control 
    2523 
     
    6058      !! ** Action : - Update (ua,va) arrays with the after vertical diffusive 
    6159      !!               mixing trend. 
    62       !!             - Save the trends in (ztdua,ztdva) ('l_trddyn') 
    6360      !! 
    6461      !! History : 
     
    7673 
    7774      !! * Local declarations 
    78       INTEGER ::   & 
    79          ji, jj, jk,                  &  ! dummy loop indices 
    80          ikbu, ikbum1, ikbv, ikbvm1      ! temporary integers 
     75      INTEGER ::   ji, jj, jk            ! dummy loop indices 
    8176      REAL(wp) ::   & 
    8277         zrau0r, z2dt,                &  ! temporary scalars 
    8378         z2dtf, zcoef, zzws, zrhs        !    "         " 
    84       REAL(wp), DIMENSION(jpi,jpj) ::   & 
    85          ztsx, ztsy, ztbx, ztby          ! temporary workspace arrays 
    8679      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   & 
    87          zwi, ztdua, ztdva               ! temporary workspace arrays 
     80         zwi                             ! temporary workspace arrays 
    8881      !!---------------------------------------------------------------------- 
    8982 
     
    9891      zrau0r = 1. / rau0      ! inverse of the reference density 
    9992      z2dt   = 2. * rdt       ! Leap-frog environnement 
    100       ztsx(:,:) = 0.e0 
    101       ztsy(:,:) = 0.e0  
    102       ztbx(:,:) = 0.e0 
    103       ztby(:,:) = 0.e0 
     93 
    10494      ! Euler time stepping when starting from rest 
    10595      IF( neuler == 0 .AND. kt == nit000 )   z2dt = rdt 
    106  
    107       ! Save previous ua and va trends 
    108       IF( l_trddyn )   THEN 
    109          ztdua(:,:,:) = ua(:,:,:)  
    110          ztdva(:,:,:) = va(:,:,:)  
    111       ENDIF 
    11296 
    11397      ! 1. Vertical diffusion on u 
     
    194178         END DO 
    195179      END DO 
    196  
    197       IF( l_trddyn )  THEN  
    198          ! diagnose surface and bottom momentum fluxes 
    199          DO jj = 2, jpjm1    
    200             DO ji = fs_2, fs_jpim1   ! vector opt. 
    201                ! save the surface forcing momentum fluxes 
    202                ztsx(ji,jj) = taux(ji,jj) / ( fse3u(ji,jj,1)*rau0 ) 
    203                ! save bottom friction momentum fluxes 
    204                ikbu   = MIN( mbathy(ji+1,jj), mbathy(ji,jj) ) 
    205                ikbum1 = MAX( ikbu-1, 1 ) 
    206                ztbx(ji,jj) = - avmu(ji,jj,ikbu) * ua(ji,jj,ikbum1)   & 
    207                   / ( fse3u(ji,jj,ikbum1)*fse3uw(ji,jj,ikbu) ) 
    208                ! subtract surface forcing and bottom friction trend from vertical 
    209                ! diffusive momentum trend 
    210                ztdua(ji,jj,1     ) = ztdua(ji,jj,1     ) - ztsx(ji,jj) 
    211                ztdua(ji,jj,ikbum1) = ztdua(ji,jj,ikbum1) - ztbx(ji,jj) 
    212             END DO 
    213          END DO 
    214       ENDIF 
    215180 
    216181      ! Normalization to obtain the general momentum trend ua 
     
    309274      END DO 
    310275 
    311       IF( l_trddyn )  THEN  
    312          ! diagnose surface and bottom momentum fluxes 
    313          DO jj = 2, jpjm1    
    314             DO ji = fs_2, fs_jpim1   ! vector opt. 
    315                ! save the surface forcing momentum fluxes 
    316                ztsy(ji,jj) = tauy(ji,jj) / ( fse3v(ji,jj,1)*rau0 ) 
    317                ! save bottom friction momentum fluxes 
    318                ikbv   = MIN( mbathy(ji,jj+1), mbathy(ji,jj) ) 
    319                ikbvm1 = MAX( ikbv-1, 1 ) 
    320                ztby(ji,jj) = - avmv(ji,jj,ikbv) * va(ji,jj,ikbvm1)   & 
    321                   / ( fse3v(ji,jj,ikbvm1)*fse3vw(ji,jj,ikbv) ) 
    322                ! subtract surface forcing and bottom friction trend from vertical 
    323                ! diffusive momentum trend 
    324                ztdva(ji,jj,1     ) = ztdva(ji,jj,1     ) - ztsy(ji,jj) 
    325                ztdva(ji,jj,ikbvm1) = ztdva(ji,jj,ikbvm1) - ztby(ji,jj) 
    326             END DO 
    327          END DO 
    328       ENDIF 
     276! flux de surface doit etre calcule dans trdmod et boootom stress 
     277! deduit par integration verticale dans trmod pour jpdtdzdf 
     278!RB      IF( l_trddyn )  THEN  
     279!         ! diagnose surface and bottom momentum fluxes 
     280!         DO jj = 2, jpjm1    
     281!            DO ji = fs_2, fs_jpim1   ! vector opt. 
     282!               ! save the surface forcing momentum fluxes 
     283!               ztsy(ji,jj) = tauy(ji,jj) / ( fse3v(ji,jj,1)*rau0 ) 
     284!               ztsx(ji,jj) = taux(ji,jj) / ( fse3u(ji,jj,1)*rau0 ) 
     285!               ! save bottom friction momentum fluxes 
     286!               ikbv   = MIN( mbathy(ji,jj+1), mbathy(ji,jj) ) 
     287!               ikbvm1 = MAX( ikbv-1, 1 ) 
     288!               ztby(ji,jj) = - avmv(ji,jj,ikbv) * va(ji,jj,ikbvm1)   & 
     289!                  / ( fse3v(ji,jj,ikbvm1)*fse3vw(ji,jj,ikbv) ) 
     290!               ! subtract surface forcing and bottom friction trend from vertical 
     291!               ! diffusive momentum trend 
     292!               ztdva(ji,jj,1     ) = ztdva(ji,jj,1     ) - ztsy(ji,jj) 
     293!               ztdva(ji,jj,ikbvm1) = ztdva(ji,jj,ikbvm1) - ztby(ji,jj) 
     294!            END DO 
     295!         END DO 
     296!      ENDIF 
    329297 
    330298      ! Normalization to obtain the general momentum trend va 
     
    337305      END DO 
    338306 
    339       ! save the vertical diffusion trends for diagnostic 
    340       ! momentum trends 
    341       IF( l_trddyn )  THEN  
    342          ztdua(:,:,:) = ua(:,:,:) - ztdua(:,:,:) 
    343          ztdva(:,:,:) = va(:,:,:) - ztdva(:,:,:) 
    344  
    345          CALL trd_mod(ztdua, ztdva, jpdtdzdf, 'DYN', kt) 
    346          ztdua(:,:,:) = 0.e0 
    347          ztdva(:,:,:) = 0.e0 
    348          ztdua(:,:,1) = ztsx(:,:) 
    349          ztdva(:,:,1) = ztsy(:,:) 
    350          CALL trd_mod(ztdua , ztdva , jpdtdswf, 'DYN', kt) 
    351          ztdua(:,:,:) = 0.e0 
    352          ztdva(:,:,:) = 0.e0 
    353          ztdua(:,:,1) = ztbx(:,:) 
    354          ztdva(:,:,1) = ztby(:,:) 
    355          CALL trd_mod(ztdua , ztdva , jpdtdbfr, 'DYN', kt) 
    356       ENDIF 
    357  
    358       IF(ln_ctl) THEN         ! print sum trends (used for debugging) 
    359          CALL prt_ctl(tab3d_1=ua, clinfo1=' zdf  - Ua: ', mask1=umask, & 
    360             &         tab3d_2=va, clinfo2=' Va: ', mask2=vmask, clinfo3='dyn') 
    361       ENDIF 
    362  
    363307   END SUBROUTINE dyn_zdf_imp 
    364308 
Note: See TracChangeset for help on using the changeset viewer.