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 4616 for branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90 – NEMO

Ignore:
Timestamp:
2014-04-06T17:28:25+02:00 (10 years ago)
Author:
gm
Message:

#1260 : see the associated wiki page for explanation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90

    r4147 r4616  
    99   !!---------------------------------------------------------------------- 
    1010#if ! defined key_coupled 
    11   
    12    !!---------------------------------------------------------------------- 
    13    !!   Only for ORCA2 ORCA1 and ORCA025 
     11   !!---------------------------------------------------------------------- 
     12   !!   Only for ORCA2 ORCA1 and ORCA025 and not coupled case 
    1413   !!---------------------------------------------------------------------- 
    1514   !!---------------------------------------------------------------------- 
     
    2120   USE sbc_oce         ! ??? 
    2221   USE zdf_oce         ! ocean vertical physics 
     22   ! 
    2323   USE in_out_manager  ! I/O manager 
    2424   USE lib_mpp         ! distributed memory computing library 
     25   USE lib_fortran    ! Fortran utilities 
    2526   USE timing          ! preformance summary 
    2627 
     
    4445   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    4546   !!---------------------------------------------------------------------- 
    46  
    4747CONTAINS 
    4848 
     
    7777         a_salb   = 0.e0 ! valeur de sal au debut de la simulation 
    7878         ! sshb used because diafwb called after tranxt (i.e. after the swap) 
    79          a_sshb = SUM( e1t(:,:) * e2t(:,:) * sshb(:,:) * tmask_i(:,:) ) 
    80          IF( lk_mpp )   CALL mpp_sum( a_sshb )      ! sum over the global domain 
     79         a_sshb = glob_sum(  e1e2t(:,:) * sshb(:,:)  )     ! sum over the global domain 
    8180 
    8281         DO jk = 1, jpkm1 
    8382            DO jj = 2, jpjm1 
    8483               DO ji = fs_2, fs_jpim1   ! vector opt. 
    85                   zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    86                   a_salb = a_salb + ( tsb(ji,jj,jk,jp_sal) - zsm0 ) * zwei 
     84                  zwei   = e1e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     85                  a_salb = a_salb + zwei * ( tsb(ji,jj,jk,jp_sal) - zsm0 ) 
    8786               END DO 
    8887            END DO 
     
    9190      ENDIF 
    9291       
    93       a_fwf    = SUM( e1t(:,:) * e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) )  
    94       IF( lk_mpp )   CALL mpp_sum( a_fwf    )       ! sum over the global domain 
     92      a_fwf = glob_sum(  e1e2t(:,:) * ( emp(:,:)-rnf(:,:) )  )    ! sum over the global domain 
    9593 
    9694      IF( kt == nitend ) THEN 
     
    10199         zfwfnew = 0.e0 
    102100         ! Mean sea level at nitend 
    103          a_sshn = SUM( e1t(:,:) * e2t(:,:) * sshn(:,:) * tmask_i(:,:) ) 
    104          IF( lk_mpp )   CALL mpp_sum( a_sshn )      ! sum over the global domain 
    105          zarea  = SUM( e1t(:,:) * e2t(:,:) *             tmask_i(:,:) ) 
    106          IF( lk_mpp )   CALL mpp_sum( zarea  )      ! sum over the global domain 
     101         a_sshn = glob_sum( e1e2t(:,:) * sshn(:,:) )     ! sum over the global domain 
     102         zarea  = glob_sum( e1e2t(:,:) )                 ! sum over the global domain (tmask_i included) 
    107103          
    108104         DO jk = 1, jpkm1    
    109105            DO jj = 2, jpjm1 
    110106               DO ji = fs_2, fs_jpim1   ! vector opt. 
    111                   zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    112                   a_saln = a_saln + ( tsn(ji,jj,jk,jp_sal) - zsm0 ) * zwei 
    113                   zvol  = zvol  + zwei 
     107                  zwei  = e1e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     108                  a_saln = a_saln + zwei * ( tsn(ji,jj,jk,jp_sal) - zsm0 ) 
     109                  zvol   = zvol   + zwei 
    114110               END DO 
    115111            END DO 
Note: See TracChangeset for help on using the changeset viewer.