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 3003 for branches – NEMO

Changeset 3003 for branches


Ignore:
Timestamp:
2011-10-26T22:03:22+02:00 (12 years ago)
Author:
cetlod
Message:

branch dev_LOCEAN_2011: use the glob_sum function to sum over the global domain

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90

    r2977 r3003  
    124124       
    125125         DO jn = jp_sms0, jp_sms1 
    126          !                                                        ! =========== 
     126            !                                                        ! =========== 
    127127            ztrcorb = 0.e0   ;   ztrmasb = 0.e0 
    128128            ztrcorn = 0.e0   ;   ztrmasn = 0.e0 
    129129 
    130            IF( l_trdtrc ) THEN 
    131               ztrtrdb(:,:,:) = ptrb(:,:,:,jn)                        ! save input trb for trend computation 
    132               ztrtrdn(:,:,:) = ptrn(:,:,:,jn)                        ! save input trn for trend computation 
    133            ENDIF 
    134  
    135  
    136             DO jk = 1, jpkm1 
    137                DO jj = 1, jpj 
    138                   DO ji = 1, jpi 
    139                      ztrcorb = ztrcorb + MIN( 0., ptrb(ji,jj,jk,jn) ) * cvol(ji,jj,jk) 
    140                      ztrcorn = ztrcorn + MIN( 0., ptrn(ji,jj,jk,jn) ) * cvol(ji,jj,jk) 
    141  
    142                      ptrb(ji,jj,jk,jn) = MAX( 0., ptrb(ji,jj,jk,jn) ) 
    143                      ptrn(ji,jj,jk,jn) = MAX( 0., ptrn(ji,jj,jk,jn) ) 
    144  
    145                      ztrmasb = ztrmasb + ptrb(ji,jj,jk,jn) * cvol(ji,jj,jk) 
    146                      ztrmasn = ztrmasn + ptrn(ji,jj,jk,jn) * cvol(ji,jj,jk) 
    147                   END DO 
    148                END DO 
    149             END DO 
    150  
    151             IF( lk_mpp ) THEN 
    152                CALL mpp_sum( ztrcorb )      ! sum over the global domain 
    153                CALL mpp_sum( ztrcorn )      ! sum over the global domain 
    154                CALL mpp_sum( ztrmasb )      ! sum over the global domain 
    155                CALL mpp_sum( ztrmasn )      ! sum over the global domain 
    156             ENDIF 
     130            IF( l_trdtrc ) THEN 
     131               ztrtrdb(:,:,:) = ptrb(:,:,:,jn)                        ! save input trb for trend computation 
     132               ztrtrdn(:,:,:) = ptrn(:,:,:,jn)                        ! save input trn for trend computation 
     133            ENDIF 
     134            !                                                         ! sum over the global domain  
     135            ztrcorb = glob_sum( MIN( 0., ptrb(:,:,:,jn) ) * cvol(:,:,:) ) 
     136            ztrcorn = glob_sum( MIN( 0., ptrn(:,:,:,jn) ) * cvol(:,:,:) ) 
     137 
     138            ztrmasb = glob_sum( MAX( 0., ptrb(:,:,:,jn) ) * cvol(:,:,:) ) 
     139            ztrmasn = glob_sum( MAX( 0., ptrn(:,:,:,jn) ) * cvol(:,:,:) ) 
    157140 
    158141            IF( ztrcorb /= 0 ) THEN 
    159142               zcoef = 1. + ztrcorb / ztrmasb 
    160143               DO jk = 1, jpkm1 
     144                  ptrb(:,:,jk,jn) = MAX( 0., ptrb(:,:,jk,jn) ) 
    161145                  ptrb(:,:,jk,jn) = ptrb(:,:,jk,jn) * zcoef * tmask(:,:,jk) 
    162146               END DO 
     
    166150               zcoef = 1. + ztrcorn / ztrmasn 
    167151               DO jk = 1, jpkm1 
     152                  ptrn(:,:,jk,jn) = MAX( 0., ptrn(:,:,jk,jn) ) 
    168153                  ptrn(:,:,jk,jn) = ptrn(:,:,jk,jn) * zcoef * tmask(:,:,jk) 
    169154               END DO 
Note: See TracChangeset for help on using the changeset viewer.