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 2326 for branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90 – NEMO

Ignore:
Timestamp:
2010-10-28T11:06:10+02:00 (13 years ago)
Author:
cetlod
Message:

correction of minor bugs on bio-optical retroaction when using PISCES

File:
1 edited

Legend:

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

    r2317 r2326  
    103103      REAL(wp), DIMENSION(jpi,jpj)     ::   zekb, zekg, zekr            ! 2D workspace 
    104104      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze0, ze1 , ze2, ze3, zea    ! 3D workspace 
    105       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  ztrdt,  ztrds 
     105      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  ztrdt 
    106106      !!---------------------------------------------------------------------- 
    107107 
     
    115115      IF( l_trdtra ) THEN      ! Save ta and sa trends 
    116116         ALLOCATE( ztrdt(jpi,jpj,jpk) )   ;    ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    117          ALLOCATE( ztrds(jpi,jpj,jpk) )   ;    ztrds(:,:,:) = 0. 
    118117      ENDIF 
    119118 
     
    143142         !                                        ! ============================================== ! 
    144143         DO jk = 1, jpkm1 
    145             DO jj = 2, jpjm1 
     144            qsr_hc(:,:,jk) = ro0cpr * ( etot3(:,:,jk) - etot3(:,:,jk+1) ) 
     145         END DO 
     146         !                                        Add to the general trend 
     147         DO jk = 1, jpkm1 
     148            DO jj = 2, jpjm1  
    146149               DO ji = fs_2, fs_jpim1   ! vector opt. 
    147                   qsr_hc(ji,jj,jk) =  ro0cpr * ( etot3(ji,jj,jk) - etot3(ji,jj,jk+1) ) / fse3t(ji,jj,jk)  
     150                  z1_e3t = zfact / fse3t(ji,jj,jk) 
     151                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) * z1_e3t 
    148152               END DO 
    149153            END DO 
     
    234238                        zc0 = zz0 * EXP( -fsdepw(ji,jj,jk  )*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk  )*xsi1r ) 
    235239                        zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r ) 
    236                         qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0*tmask(ji,jj,jk) - zc1*tmask(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
     240                        qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0*tmask(ji,jj,jk) - zc1*tmask(ji,jj,jk+1) )  
    237241                     END DO 
    238242                  END DO 
     
    251255         ENDIF 
    252256         ! 
    253       ENDIF 
    254       !                                        Add to the general trend 
    255       !                                        ************************ 
    256       DO jk = 1, nksr 
    257          DO jj = 2, jpjm1  
    258             DO ji = fs_2, fs_jpim1   ! vector opt. 
    259                z1_e3t = zfact / fse3t(ji,jj,jk) 
    260                tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) * z1_e3t 
     257         !                                        Add to the general trend 
     258         DO jk = 1, nksr 
     259            DO jj = 2, jpjm1  
     260               DO ji = fs_2, fs_jpim1   ! vector opt. 
     261                  z1_e3t = zfact / fse3t(ji,jj,jk) 
     262                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) * z1_e3t 
     263               END DO 
    261264            END DO 
    262265         END DO 
    263       END DO 
     266         ! 
     267      ENDIF 
    264268      ! 
    265269      IF( lrst_oce ) THEN   !                  Write in the ocean restart file 
     
    276280         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
    277281         CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_qsr, ztrdt ) 
    278          CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_qsr, ztrds ) 
    279          DEALLOCATE( ztrdt )    ;        DEALLOCATE( ztrds ) 
     282         DEALLOCATE( ztrdt ) 
    280283      ENDIF 
    281284      !                       ! print mean trends (used for debugging) 
     
    443446                  ! 
    444447                  DO jk = 1, nksr 
    445                      etot3(:,:,jk) = ro0cpr * ( zea(:,:,jk) - zea(:,:,jk+1) ) / fse3t_0(:,:,jk) 
     448                     etot3(:,:,jk) = ro0cpr * ( zea(:,:,jk) - zea(:,:,jk+1) )  
    446449                  END DO 
    447450                  etot3(:,:,nksr+1:jpk) = 0.e0                ! below 400m set to zero 
     
    471474                        zc0 = zz0 * EXP( -fsdepw(ji,jj,jk  )*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk  )*xsi1r ) 
    472475                        zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r ) 
    473                         etot3(ji,jj,jk) = (  zc0 * tmask(ji,jj,jk) - zc1 * tmask(ji,jj,jk+1)  ) / fse3t_0(ji,jj,jk) 
     476                        etot3(ji,jj,jk) = (  zc0 * tmask(ji,jj,jk) - zc1 * tmask(ji,jj,jk+1)  )  
    474477                     END DO 
    475478                  END DO 
Note: See TracChangeset for help on using the changeset viewer.