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 4230 for branches/2013/dev_LOCEAN_CMCC_INGV_2013/NEMOGCM/NEMO/TOP_SRC/TRP – NEMO

Ignore:
Timestamp:
2013-11-18T12:57:11+01:00 (10 years ago)
Author:
cetlod
Message:

dev_LOCEAN_CMCC_INGV_2013 : merge LOCEAN & CMCC_INGV branches, see ticket #1182

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_CMCC_INGV_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90

    r4148 r4230  
    8484      CHARACTER (len=22) :: charout 
    8585      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrtrd 
    86       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  ztrcdta   ! 4D  workspace 
     86      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrcdta   ! 3D  workspace 
    8787      !!---------------------------------------------------------------------- 
    8888      ! 
     
    9797      IF( nb_trcdta > 0 ) THEN  ! Initialisation of tracer from a file that may also be used for damping 
    9898         ! 
    99          CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta )    ! Memory allocation 
    100          CALL trc_dta( kt, ztrcdta )   ! read tracer data at nit000 
     99         CALL wrk_alloc( jpi, jpj, jpk, ztrcdta )    ! Memory allocation 
    101100         !                                                          ! =========== 
    102101         DO jn = 1, jptra                                           ! tracer loop 
     
    107106                
    108107               jl = n_trc_index(jn)  
     108               CALL trc_dta( kt, sf_trcdta(jl),rf_trfac(jl) )   ! read tracer data at nit000 
     109               ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:) 
    109110 
    110111               SELECT CASE ( nn_zdmp_tr ) 
     
    114115                     DO jj = 2, jpjm1 
    115116                        DO ji = fs_2, fs_jpim1   ! vector opt. 
    116                            ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk,jl) - trb(ji,jj,jk,jn) ) 
     117                           ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 
    117118                           tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
    118119                        END DO 
     
    125126                        DO ji = fs_2, fs_jpim1   ! vector opt. 
    126127                           IF( avt(ji,jj,jk) <= 5.e-4 )  THEN  
    127                               ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk,jl) - trb(ji,jj,jk,jn) ) 
     128                              ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 
    128129                              tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
    129130                           ENDIF 
     
    137138                        DO ji = fs_2, fs_jpim1   ! vector opt. 
    138139                           IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    139                               ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk,jl) - trb(ji,jj,jk,jn) ) 
     140                              ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 
    140141                              tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 
    141142                           END IF 
     
    155156         END DO                                                     ! tracer loop 
    156157         !                                                          ! =========== 
    157          CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) 
     158         CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 
    158159      ENDIF 
    159160      ! 
     
    184185      ! 
    185186      INTEGER :: ji, jj, jk, jn, jl, jc                     ! dummy loop indicesa 
    186       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  ztrcdta     ! 4D  workspace 
     187      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrcdta       ! 3D  workspace 
    187188 
    188189      !!---------------------------------------------------------------------- 
     
    266267         IF(lwp)  WRITE(numout,*) 
    267268         ! 
    268          CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta )   ! Memory allocation 
    269          ! 
    270          CALL trc_dta( kt , ztrcdta )   ! read tracer data at nittrc000 
     269         CALL wrk_alloc( jpi, jpj, jpk, ztrcdta )   ! Memory allocation 
    271270         ! 
    272271         DO jn = 1, jptra 
    273272            IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file 
    274273                jl = n_trc_index(jn) 
     274                CALL trc_dta( kt, sf_trcdta(jl),rf_trfac(jl) )   ! read tracer data at nit000 
     275                ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:) 
    275276                DO jc = 1, npncts 
    276277                   DO jk = 1, jpkm1 
    277278                      DO jj = nctsj1(jc), nctsj2(jc) 
    278279                         DO ji = nctsi1(jc), nctsi2(jc) 
    279                             trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk,jl) * tmask(ji,jj,jk) 
     280                            trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk) * tmask(ji,jj,jk) 
    280281                            trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
    281282                         ENDDO 
     
    285286             ENDIF 
    286287          ENDDO 
    287           CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) 
     288          CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 
    288289      ENDIF 
    289290      ! 
Note: See TracChangeset for help on using the changeset viewer.