Ignore:
Timestamp:
2017-05-09T17:36:25+02:00 (3 years ago)
Author:
jchanut
Message:

AGRIF vvl add on

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7963_nemo_v3_6_AGRIF-3_AGRIFVVL/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90

    r6204 r8010  
    2828CONTAINS 
    2929 
    30    SUBROUTINE Agrif_Update_Trc( kt ) 
     30   SUBROUTINE Agrif_Update_Trc( ) 
    3131      !!--------------------------------------------- 
    3232      !!   *** ROUTINE Agrif_Update_Trc *** 
    3333      !!--------------------------------------------- 
    34       INTEGER, INTENT(in) :: kt 
    3534      !!--------------------------------------------- 
    3635      !  
    37       IF((Agrif_NbStepint() .NE. (Agrif_irhot()-1)).AND.(kt /= 0)) RETURN 
     36      IF (Agrif_Root()) RETURN 
     37       
    3838#if defined TWO_WAY    
     39      IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update trc  from grid Number',Agrif_Fixed(), 'nbcline_trc', nbcline_trc 
     40 
    3941      Agrif_UseSpecialValueInUpdate = .TRUE. 
    4042      Agrif_SpecialValueFineGrid = 0. 
     
    5658      Agrif_UseSpecialValueInUpdate = .FALSE. 
    5759      nbcline_trc = nbcline_trc + 1 
     60      ! 
    5861#endif 
    5962      ! 
     
    7073      !! 
    7174      INTEGER :: ji,jj,jk,jn 
     75      REAL(wp) :: ztb, ztnu, ztno 
    7276      !!--------------------------------------------- 
    7377      ! 
     
    7781               DO jj=j1,j2 
    7882                  DO ji=i1,i2 
    79                      ptab(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
     83!> jc tmp 
     84                     ptab(ji,jj,jk,jn) = trn(ji,jj,jk,jn)  * fse3t_n(ji,jj,jk) / e3t_0(ji,jj,jk) 
     85!                     ptab(ji,jj,jk,jn) = trn(ji,jj,jk,jn)  * fse3t_n(ji,jj,jk) 
     86!< jc tmp 
    8087                  END DO 
    8188               END DO 
     
    8390         END DO 
    8491      ELSE 
     92!> jc tmp 
     93         DO jn = n1,n2 
     94            ptab(i1:i2,j1:j2,k1:k2,jn) =  ptab(i1:i2,j1:j2,k1:k2,jn) * e3t_0(i1:i2,j1:j2,k1:k2) 
     95         ENDDO 
     96!< jc tmp 
     97 
    8598         IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
    8699            ! Add asselin part 
     
    90103                     DO ji=i1,i2 
    91104                        IF( ptab(ji,jj,jk,jn) .NE. 0. ) THEN 
    92                            trb(ji,jj,jk,jn) = trb(ji,jj,jk,jn) &  
    93                                  & + atfp * ( ptab(ji,jj,jk,jn) & 
    94                                  &             - trn(ji,jj,jk,jn) ) * tmask(ji,jj,jk) 
     105                           ztb  = trb(ji,jj,jk,jn) * fse3t_b(ji,jj,jk) ! fse3t_b prior update should be used 
     106                           ztnu = ptab(ji,jj,jk,jn) 
     107                           ztno = trn(ji,jj,jk,jn) * fse3t_a(ji,jj,jk) 
     108                           trb(ji,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) )  &  
     109                                     &        * tmask(ji,jj,jk) / fse3t_b(ji,jj,jk) 
    95110                        ENDIF 
    96111                     ENDDO 
     
    99114            ENDDO 
    100115         ENDIF 
     116 
    101117         DO jn = n1,n2 
    102118            DO jk=k1,k2 
     
    104120                  DO ji=i1,i2 
    105121                     IF( ptab(ji,jj,jk,jn) .NE. 0. ) THEN  
    106                         trn(ji,jj,jk,jn) = ptab(ji,jj,jk,jn) * tmask(ji,jj,jk) 
     122                        trn(ji,jj,jk,jn) = ptab(ji,jj,jk,jn) / fse3t_n(ji,jj,jk) 
    107123                     END IF 
    108124                  END DO 
     
    110126            END DO 
    111127         END DO 
     128         ! 
     129         IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
     130            trb(i1:i2,j1:j2,k1:k2,n1:n2)  = trn(i1:i2,j1:j2,k1:k2,n1:n2) 
     131         ENDIF 
     132         ! 
    112133      ENDIF 
    113134      !  
Note: See TracChangeset for help on using the changeset viewer.