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 2272 – NEMO

Changeset 2272


Ignore:
Timestamp:
2010-10-14T18:45:40+02:00 (14 years ago)
Author:
cetlod
Message:

cosmetic changes on tranxt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r2257 r2272  
    5757   REAL(wp)                 ::   rbcp            ! Brown & Campana parameters for semi-implicit hpg 
    5858   REAL(wp), DIMENSION(jpk) ::   r2dt   ! vertical profile time step, =2*rdttra (leapfrog) or =rdttra (Euler) 
    59    LOGICAL  :: l_tra           ! active tracers or passive tracers 
    6059 
    6160   !! * Substitutions 
    6261#  include "domzgr_substitute.h90" 
    6362   !!---------------------------------------------------------------------- 
    64    !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010)  
    65    !! $Id$ 
     63   !! NEMO/OPA 3.3 , NEMO-Consortium (2010)  
     64   !! $Id $ 
    6665   !! Software governed by the CeCILL licence  (NEMOGCM/License_CeCILL.txt) 
    6766   !!---------------------------------------------------------------------- 
    68  
    6967CONTAINS 
    7068 
     
    124122#endif 
    125123#if defined key_agrif 
    126       CALL Agrif_tra                   ! AGRIF zoom boundaries 
     124      CALL Agrif_tra                     ! AGRIF zoom boundaries 
    127125#endif 
    128126 
     
    137135 
    138136      ! trends computation initialisation 
    139       IF( l_trdtra )   THEN                    !* store now fields before applying the Asselin filter 
     137      IF( l_trdtra )   THEN                    ! store now fields before applying the Asselin filter 
    140138         ALLOCATE( ztrdt(jpi,jpj,jpk) )   ;    ztrdt(:,:,:) = tsn(:,:,:,jp_tem)  
    141139         ALLOCATE( ztrds(jpi,jpj,jpk) )   ;    ztrds(:,:,:) = tsn(:,:,:,jp_sal) 
    142140      ENDIF 
    143141 
    144       ! Leap-Frog + Asselin filter time stepping 
    145       IF( neuler == 0 .AND. kt == nit000 ) THEN        ! Euler time-stepping at first time-step 
    146          !                                             ! (only swap) 
     142      IF( neuler == 0 .AND. kt == nit000 ) THEN       ! Euler time-stepping at first time-step (only swap) 
    147143         DO jn = 1, jpts 
    148144            DO jk = 1, jpkm1 
     
    150146            END DO 
    151147         END DO 
    152          !                                               
    153       ELSE 
     148      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
     149         ! 
    154150         IF( lk_vvl )  THEN   ;   CALL tra_nxt_vvl( kt, 'TRA', tsb, tsn, tsa, jpts )  ! variable volume level (vvl)      
    155151         ELSE                 ;   CALL tra_nxt_fix( kt, 'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
     
    158154 
    159155#if defined key_agrif 
     156      ! Update tracer at AGRIF zoom boundaries 
    160157      CALL tra_unswap 
    161       ! Update tracer at AGRIF zoom boundaries 
    162158      IF( .NOT.Agrif_Root() )    CALL Agrif_Update_Tra( kt )      ! children only 
    163159      CALL tra_swap 
     
    165161 
    166162      ! trends computation 
    167       IF( l_trdtra ) THEN              ! trend of the Asselin filter (tb filtered - tb)/dt      
     163      IF( l_trdtra ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt      
    168164         DO jk = 1, jpkm1 
    169165            zfact = 1.e0 / r2dt(jk)              
     
    212208      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  ptn      ! now tracer fields 
    213209      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  pta      ! tracer trend 
    214       INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
    215       REAL(wp) :: ztn, ztd, ztm         ! temporary scalars 
     210      !! 
     211      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
     212      LOGICAL  ::   ll_tra_hpg       ! local logical 
     213      REAL(wp) ::   ztn, ztd, ztm    ! local scalars 
    216214      !!---------------------------------------------------------------------- 
    217215 
     
    222220      ENDIF 
    223221      ! 
    224       IF( cdtype == 'TRA' )  THEN   ;   l_tra     = .TRUE.    ! active tracers case      
    225       ELSE                          ;   l_tra     = .FALSE.   ! passive tracers case 
     222      IF( cdtype == 'TRA' )  THEN   ;   ll_tra_hpg = ln_dynhpg_imp    ! active  tracers case  and  semi-implicit hpg     
     223      ELSE                          ;   ll_tra_hpg = .FALSE.          ! passive tracers case or NO semi-implicit hpg 
    226224      ENDIF 
    227225      ! 
     
    231229            DO jj = 1, jpj 
    232230               DO ji = 1, jpi 
    233                   IF( l_tra .AND. ln_dynhpg_imp )  ztn = ptn(ji,jj,jk,jn)               ! implicit hpg: keep tn, sn in memory 
     231                  IF( ll_tra_hpg )   ztn = ptn(ji,jj,jk,jn)                 ! semi-implicit hpg: keep tn, sn in memory 
    234232                  !  
    235233                  ztd = pta(ji,jj,jk,jn) - 2.* ptn(ji,jj,jk,jn) + ptb(ji,jj,jk,jn)      !  time laplacian on tracers 
     
    238236                  ptn(ji,jj,jk,jn) = pta(ji,jj,jk,jn)                                   ! ptn <-- pta 
    239237                  ! 
    240                   IF( l_tra .AND. ln_dynhpg_imp )  pta(ji,jj,jk,jn) = ztn + rbcp * ztd  ! pta <-- Brown & Campana average 
     238                  IF( ll_tra_hpg )   pta(ji,jj,jk,jn) = ztn + rbcp * ztd    ! pta <-- Brown & Campana average 
    241239               END DO 
    242240           END DO 
     
    279277      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  pta      ! tracer trend 
    280278      !!      
    281       INTEGER  ::   ji, jj, jk, jn                 ! dummy loop indices 
    282       REAL(wp) ::   ztc_a , ztc_n , ztc_b          ! temporary scalar 
    283       REAL(wp) ::   ztc_f , ztc_d , ztc_m          !    -         - 
    284       REAL(wp) ::   ze3t_b, ze3t_n, ze3t_a         !    -         - 
    285       REAL(wp) ::   ze3t_f, ze3t_d, ze3t_m         !    -         - 
    286       REAL     ::   zfact1, zfact2                 !    -         - 
     279      LOGICAL  ::   ll_tra, ll_tra_hpg, ll_traqsr   ! local logical 
     280      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
     281      REAL(wp) ::   ztc_a , ztc_n , ztc_b       ! local scalar 
     282      REAL(wp) ::   ztc_f , ztc_d , ztc_m       !   -      - 
     283      REAL(wp) ::   ze3t_b, ze3t_n, ze3t_a      !   -      - 
     284      REAL(wp) ::   ze3t_f, ze3t_d, ze3t_m      !   -      - 
     285      REAL(wp) ::   zfact1, zfact2              !   -      - 
    287286      !!---------------------------------------------------------------------- 
    288287 
     
    293292      ENDIF 
    294293      ! 
    295       IF( cdtype == 'TRA' )  THEN   ;   l_tra     = .TRUE.    ! active tracers case      
    296       ELSE                          ;   l_tra     = .FALSE.   ! passive tracers case 
     294      IF( cdtype == 'TRA' )  THEN    
     295         ll_tra     = .TRUE.           ! active tracers case   
     296         ll_tra_hpg = ln_dynhpg_imp    ! active  tracers case  and  semi-implicit hpg 
     297         ll_traqsr  = ln_traqsr        ! active  tracers case  and  semi-implicit hpg 
     298      ELSE                           
     299         ll_tra     = .FALSE.          ! passive tracers case 
     300         ll_tra_hpg = .FALSE.          ! passive tracers case or NO semi-implicit hpg 
     301         ll_traqsr  = .FALSE.          ! active  tracers case  and  semi-implicit hpg 
    297302      ENDIF 
    298303      ! 
     
    316321                  ze3t_f = ze3t_n + atfp * ze3t_d 
    317322                  ztc_f  = ztc_n  + atfp * ztc_d 
    318  
    319                   IF( l_tra .AND. jk == 1 ) THEN 
     323                  ! 
     324                  IF( ll_tra .AND. jk == 1 ) THEN           ! first level only for T & S 
    320325                      ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) ) 
    321326                      ztc_f  = ztc_f  - zfact1 * ( sbc_tsc(ji,jj,jn) - sbc_tsc_b(ji,jj,jn) ) 
    322327                  ENDIF 
    323                   IF( l_tra .AND. jn == jp_tem .AND. ln_traqsr .AND. jk <= nksr )  & 
     328                  IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr )   &     ! solar penetration (temperature only) 
    324329                     &     ztc_f  = ztc_f  - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) )  
    325330 
     
    328333                   ptn(ji,jj,jk,jn) = pta(ji,jj,jk,jn)     ! ptn <-- pta 
    329334                   ! 
    330                    IF( l_tra .AND. ln_dynhpg_imp ) THEN 
     335                   IF( ll_tra_hpg ) THEN        ! semi-implicit hpg (T & S only) 
    331336                      ze3t_d           = 1.e0   / ( ze3t_n + rbcp * ze3t_d ) 
    332337                      pta(ji,jj,jk,jn) = ze3t_d * ( ztc_n  + rbcp * ztc_d  )   ! ta <-- Brown & Campana average 
Note: See TracChangeset for help on using the changeset viewer.