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 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90 – NEMO

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90

    r2715 r3294  
    3030   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3131   USE lib_mpp         ! MPP library 
     32   USE wrk_nemo        ! Memory allocation 
     33   USE timing          ! Timing 
    3234 
    3335 
     
    6062      !! 
    6163      INTEGER  ::   jk                   ! Dummy loop indices 
    62       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrdt, ztrds   ! 3D workspace 
     64      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt, ztrds   ! 3D workspace 
    6365      !!--------------------------------------------------------------------- 
    64  
    65       !                                          ! set time step 
     66      ! 
     67      IF( nn_timing == 1 )  CALL timing_start('tra_zdf') 
     68      ! 
    6669      IF( neuler == 0 .AND. kt == nit000 ) THEN     ! at nit000 
    6770         r2dtra(:) =  rdttra(:)                          ! = rdtra (restarting with Euler time stepping) 
     
    7174 
    7275      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    73          ALLOCATE( ztrdt(jpi,jpj,jpk) )   ;    ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    74          ALLOCATE( ztrds(jpi,jpj,jpk) )   ;    ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     76         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
     77         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
     78         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
    7579      ENDIF 
    7680 
    7781      SELECT CASE ( nzdf )                       ! compute lateral mixing trend and add it to the general trend 
    78       CASE ( 0 )    ;    CALL tra_zdf_exp( kt, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )  !   explicit scheme  
    79       CASE ( 1 )    ;    CALL tra_zdf_imp( kt, 'TRA', r2dtra,            tsb, tsa, jpts )  !   implicit scheme  
     82      CASE ( 0 )    ;    CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )  !   explicit scheme  
     83      CASE ( 1 )    ;    CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra,            tsb, tsa, jpts )  !   implicit scheme  
    8084      CASE ( -1 )                                       ! esopa: test all possibility with control print 
    81          CALL tra_zdf_exp( kt, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) 
     85         CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) 
    8286         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf0 - Ta: ', mask1=tmask,               & 
    8387         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    84          CALL tra_zdf_imp( kt, 'TRA', r2dtra,            tsb, tsa, jpts )  
     88         CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra,            tsb, tsa, jpts )  
    8589         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf1 - Ta: ', mask1=tmask,               & 
    8690         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     
    9498         CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_zdf, ztrdt ) 
    9599         CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_zdf, ztrds ) 
    96          DEALLOCATE( ztrdt )      ;     DEALLOCATE( ztrds )  
     100         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    97101      ENDIF 
    98102 
     
    100104      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf  - Ta: ', mask1=tmask,               & 
    101105         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     106      ! 
     107      IF( nn_timing == 1 )  CALL timing_stop('tra_zdf') 
    102108      ! 
    103109   END SUBROUTINE tra_zdf 
Note: See TracChangeset for help on using the changeset viewer.