- Timestamp:
- 2016-07-19T10:38:35+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5549_BDY_ZEROGRAD/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90
r5506 r6808 33 33 34 34 !! * Substitutions 35 # include "domzgr_substitute.h90"36 35 # include "vectopt_loop_substitute.h90" 37 36 !!---------------------------------------------------------------------- … … 40 39 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 41 40 !!---------------------------------------------------------------------- 42 43 41 CONTAINS 44 42 … … 74 72 a_salb = 0.e0 ! valeur de sal au debut de la simulation 75 73 ! sshb used because diafwb called after tranxt (i.e. after the swap) 76 a_sshb = SUM( e1 t(:,:) *e2t(:,:) * sshb(:,:) * tmask_i(:,:) )74 a_sshb = SUM( e1e2t(:,:) * sshb(:,:) * tmask_i(:,:) ) 77 75 IF( lk_mpp ) CALL mpp_sum( a_sshb ) ! sum over the global domain 78 76 … … 80 78 DO jj = 2, jpjm1 81 79 DO ji = fs_2, fs_jpim1 ! vector opt. 82 zwei = e1 t(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) 83 81 a_salb = a_salb + ( tsb(ji,jj,jk,jp_sal) - zsm0 ) * zwei 84 82 END DO … … 88 86 ENDIF 89 87 90 a_fwf = SUM( e1 t(:,:) *e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) )88 a_fwf = SUM( e1e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) ) 91 89 IF( lk_mpp ) CALL mpp_sum( a_fwf ) ! sum over the global domain 92 90 … … 98 96 zfwfnew = 0.e0 99 97 ! Mean sea level at nitend 100 a_sshn = SUM( e1 t(:,:) *e2t(:,:) * sshn(:,:) * tmask_i(:,:) )98 a_sshn = SUM( e1e2t(:,:) * sshn(:,:) * tmask_i(:,:) ) 101 99 IF( lk_mpp ) CALL mpp_sum( a_sshn ) ! sum over the global domain 102 zarea = SUM( e1 t(:,:) *e2t(:,:) * tmask_i(:,:) )100 zarea = SUM( e1e2t(:,:) * tmask_i(:,:) ) 103 101 IF( lk_mpp ) CALL mpp_sum( zarea ) ! sum over the global domain 104 102 … … 106 104 DO jj = 2, jpjm1 107 105 DO ji = fs_2, fs_jpim1 ! vector opt. 108 zwei = e1 t(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) 109 107 a_saln = a_saln + ( tsn(ji,jj,jk,jp_sal) - zsm0 ) * zwei 110 108 zvol = zvol + zwei … … 116 114 117 115 ! Conversion in m3 118 a_fwf = a_fwf * rdt tra(1)* 1.e-3116 a_fwf = a_fwf * rdt * 1.e-3 119 117 120 118 ! fwf correction to bring back the mean ssh to zero … … 186 184 zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 187 185 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) 189 187 190 188 IF( un(ji,jj,jk) > 0.e0 ) THEN … … 238 236 zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 239 237 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) 241 239 242 240 IF( un(ji,jj,jk) > 0.e0 ) THEN … … 290 288 zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 291 289 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) 293 291 294 292 IF( un(ji,jj,jk) > 0.e0 ) THEN … … 342 340 zt = 0.5 * ( tsn(ji,jj,jk,jp_tem) + tsn(ji+1,jj,jk,jp_tem) ) 343 341 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) 345 343 346 344 IF( un(ji,jj,jk) > 0.e0 ) THEN … … 404 402 WRITE(inum,*) 405 403 WRITE(inum,*) 'Net freshwater budget ' 406 WRITE(inum,9010) ' fwf = ',a_fwf, ' m3 =', a_fwf /(FLOAT(nitend-nit000+1)*rdt tra(1)) * 1.e-6,' Sv'404 WRITE(inum,9010) ' fwf = ',a_fwf, ' m3 =', a_fwf /(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv' 407 405 WRITE(inum,*) 408 406 WRITE(inum,9010) ' zarea =',zarea … … 460 458 ENDIF 461 459 462 IF( nn_timing == 1 ) CALL timing_st art('dia_fwb')460 IF( nn_timing == 1 ) CALL timing_stop('dia_fwb') 463 461 464 462 9005 FORMAT(1X,A,ES24.16)
Note: See TracChangeset
for help on using the changeset viewer.