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 6808 for branches/NERC/dev_r5549_BDY_ZEROGRAD/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90 – NEMO

Ignore:
Timestamp:
2016-07-19T10:38:35+02:00 (8 years ago)
Author:
jamesharle
Message:

merge with trunk@6232 for consistency with SSB code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5549_BDY_ZEROGRAD/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90

    r5506 r6808  
    3333 
    3434   !! * Substitutions 
    35 #  include "domzgr_substitute.h90" 
    3635#  include "vectopt_loop_substitute.h90" 
    3736   !!---------------------------------------------------------------------- 
     
    4039   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    4140   !!---------------------------------------------------------------------- 
    42  
    4341CONTAINS 
    4442 
     
    7472         a_salb   = 0.e0 ! valeur de sal au debut de la simulation 
    7573         ! sshb used because diafwb called after tranxt (i.e. after the swap) 
    76          a_sshb = SUM( e1t(:,:) * e2t(:,:) * sshb(:,:) * tmask_i(:,:) ) 
     74         a_sshb = SUM( e1e2t(:,:) * sshb(:,:) * tmask_i(:,:) ) 
    7775         IF( lk_mpp )   CALL mpp_sum( a_sshb )      ! sum over the global domain 
    7876 
     
    8078            DO jj = 2, jpjm1 
    8179               DO ji = fs_2, fs_jpim1   ! vector opt. 
    82                   zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     80                  zwei  = e1e2t(ji,jj) * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    8381                  a_salb = a_salb + ( tsb(ji,jj,jk,jp_sal) - zsm0 ) * zwei 
    8482               END DO 
     
    8886      ENDIF 
    8987       
    90       a_fwf    = SUM( e1t(:,:) * e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) )  
     88      a_fwf    = SUM( e1e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) )  
    9189      IF( lk_mpp )   CALL mpp_sum( a_fwf    )       ! sum over the global domain 
    9290 
     
    9896         zfwfnew = 0.e0 
    9997         ! Mean sea level at nitend 
    100          a_sshn = SUM( e1t(:,:) * e2t(:,:) * sshn(:,:) * tmask_i(:,:) ) 
     98         a_sshn = SUM( e1e2t(:,:) * sshn(:,:) * tmask_i(:,:) ) 
    10199         IF( lk_mpp )   CALL mpp_sum( a_sshn )      ! sum over the global domain 
    102          zarea  = SUM( e1t(:,:) * e2t(:,:) *             tmask_i(:,:) ) 
     100         zarea  = SUM( e1e2t(:,:) *             tmask_i(:,:) ) 
    103101         IF( lk_mpp )   CALL mpp_sum( zarea  )      ! sum over the global domain 
    104102          
     
    106104            DO jj = 2, jpjm1 
    107105               DO ji = fs_2, fs_jpim1   ! vector opt. 
    108                   zwei  = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     106                  zwei  = e1e2t(ji,jj) * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    109107                  a_saln = a_saln + ( tsn(ji,jj,jk,jp_sal) - zsm0 ) * zwei 
    110108                  zvol  = zvol  + zwei 
     
    116114          
    117115         ! Conversion in m3 
    118          a_fwf    = a_fwf * rdttra(1) * 1.e-3  
     116         a_fwf    = a_fwf * rdt * 1.e-3  
    119117          
    120118         ! fwf correction to bring back the mean ssh to zero 
     
    186184                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 
    187185                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) ) 
    188                   zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
     186                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
    189187 
    190188                  IF( un(ji,jj,jk) > 0.e0 ) THEN  
     
    238236                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 
    239237                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) ) 
    240                   zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
     238                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
    241239                   
    242240                  IF( un(ji,jj,jk) > 0.e0 ) THEN  
     
    290288                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 
    291289                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) ) 
    292                   zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
     290                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
    293291                   
    294292                  IF( un(ji,jj,jk) > 0.e0 ) THEN  
     
    342340                  zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 
    343341                  zs = 0.5 * ( tsn(ji,jj,jk,jp_sal) + tsn(ji+1,jj,jk,jp_sal) ) 
    344                   zu = un(ji,jj,jk) * fse3t(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
     342                  zu = un(ji,jj,jk) * e3t_n(ji,jj,jk) * e2u(ji,jj) * tmask_i(ji,jj) 
    345343                   
    346344                  IF( un(ji,jj,jk) > 0.e0 ) THEN  
     
    404402         WRITE(inum,*) 
    405403         WRITE(inum,*)    'Net freshwater budget ' 
    406          WRITE(inum,9010) '  fwf    = ',a_fwf,   ' m3 =', a_fwf   /(FLOAT(nitend-nit000+1)*rdttra(1)) * 1.e-6,' Sv' 
     404         WRITE(inum,9010) '  fwf    = ',a_fwf,   ' m3 =', a_fwf   /(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv' 
    407405         WRITE(inum,*) 
    408406         WRITE(inum,9010) '  zarea =',zarea 
     
    460458      ENDIF 
    461459 
    462       IF( nn_timing == 1 )   CALL timing_start('dia_fwb') 
     460      IF( nn_timing == 1 )   CALL timing_stop('dia_fwb') 
    463461 
    464462 9005 FORMAT(1X,A,ES24.16) 
Note: See TracChangeset for help on using the changeset viewer.