- Timestamp:
- 2016-11-30T17:56:53+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r6140 r7403 24 24 USE ldfslp ! lateral diffusion: slope of iso-neutral surfaces 25 25 USE ldfc1d_c2d ! lateral diffusion: 1D & 2D cases 26 USE dia ar5, ONLY: lk_diaar526 USE diaptr 27 27 ! 28 28 USE trc_oce, ONLY: lk_offline ! offline flag … … 730 730 CALL iom_put( "woce_eiv", zw3d ) 731 731 ! 732 ! 733 ! 734 CALL wrk_alloc( jpi,jpj, zw2d ) 735 ! 736 zztmp = 0.5_wp * rau0 * rcp 737 IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 738 zw2d(:,:) = 0._wp 739 zw3d(:,:,:) = 0._wp 740 DO jk = 1, jpkm1 741 DO jj = 2, jpjm1 742 DO ji = fs_2, fs_jpim1 ! vector opt. 743 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_uw(ji,jj,jk+1) - psi_uw(ji,jj,jk) ) & 744 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji+1,jj,jk,jp_tem) ) 745 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 746 END DO 747 END DO 748 END DO 749 CALL lbc_lnk( zw2d, 'U', -1. ) 750 CALL lbc_lnk( zw3d, 'U', -1. ) 751 CALL iom_put( "ueiv_heattr" , zztmp * zw2d ) ! heat transport in i-direction 752 CALL iom_put( "ueiv_heattr3d", zztmp * zw3d ) ! heat transport in i-direction 753 ENDIF 754 zw2d(:,:) = 0._wp 755 zw3d(:,:,:) = 0._wp 756 DO jk = 1, jpkm1 757 DO jj = 2, jpjm1 758 DO ji = fs_2, fs_jpim1 ! vector opt. 759 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 760 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji,jj+1,jk,jp_tem) ) 761 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 762 END DO 763 END DO 764 END DO 765 CALL lbc_lnk( zw2d, 'V', -1. ) 766 CALL iom_put( "veiv_heattr", zztmp * zw2d ) ! heat transport in j-direction 767 CALL iom_put( "veiv_heattr", zztmp * zw3d ) ! heat transport in j-direction 768 ! 769 IF( ln_diaptr ) CALL dia_ptr_hst( jp_tem, 'eiv', 0.5 * zw3d ) 770 ! 771 zztmp = 0.5_wp * 0.5 772 IF( iom_use('ueiv_salttr') .OR. iom_use('ueiv_salttr3d')) THEN 773 zw2d(:,:) = 0._wp 774 zw3d(:,:,:) = 0._wp 775 DO jk = 1, jpkm1 776 DO jj = 2, jpjm1 777 DO ji = fs_2, fs_jpim1 ! vector opt. 778 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) * ( psi_uw(ji,jj,jk+1) - psi_uw(ji,jj,jk) ) & 779 & * ( tsn (ji,jj,jk,jp_sal) + tsn (ji+1,jj,jk,jp_sal) ) 780 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 781 END DO 782 END DO 783 END DO 784 CALL lbc_lnk( zw2d, 'U', -1. ) 785 CALL lbc_lnk( zw3d, 'U', -1. ) 786 CALL iom_put( "ueiv_salttr", zztmp * zw2d ) ! salt transport in i-direction 787 CALL iom_put( "ueiv_salttr3d", zztmp * zw3d ) ! salt transport in i-direction 788 ENDIF 789 zw2d(:,:) = 0._wp 790 zw3d(:,:,:) = 0._wp 791 DO jk = 1, jpkm1 792 DO jj = 2, jpjm1 793 DO ji = fs_2, fs_jpim1 ! vector opt. 794 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 795 & * ( tsn (ji,jj,jk,jp_sal) + tsn (ji,jj+1,jk,jp_sal) ) 796 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 797 END DO 798 END DO 799 END DO 800 CALL lbc_lnk( zw2d, 'V', -1. ) 801 CALL iom_put( "veiv_salttr", zztmp * zw2d ) ! salt transport in j-direction 802 CALL iom_put( "veiv_salttr", zztmp * zw3d ) ! salt transport in j-direction 803 ! 804 IF( ln_diaptr ) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d ) 805 ! 806 CALL wrk_dealloc( jpi,jpj, zw2d ) 732 807 CALL wrk_dealloc( jpi,jpj,jpk, zw3d ) 733 !734 !735 IF( lk_diaar5 ) THEN !== eiv heat transport: calculate and output ==!736 CALL wrk_alloc( jpi,jpj, zw2d )737 !738 zztmp = 0.5_wp * rau0 * rcp739 zw2d(:,:) = 0._wp740 DO jk = 1, jpkm1741 DO jj = 2, jpjm1742 DO ji = fs_2, fs_jpim1 ! vector opt.743 zw2d(ji,jj) = zw2d(ji,jj) + zztmp * ( psi_uw(ji,jj,jk+1) - psi_uw(ji,jj,jk) ) &744 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji+1,jj,jk,jp_tem) )745 END DO746 END DO747 END DO748 CALL lbc_lnk( zw2d, 'U', -1. )749 CALL iom_put( "ueiv_heattr", zw2d ) ! heat transport in i-direction750 zw2d(:,:) = 0._wp751 DO jk = 1, jpkm1752 DO jj = 2, jpjm1753 DO ji = fs_2, fs_jpim1 ! vector opt.754 zw2d(ji,jj) = zw2d(ji,jj) + zztmp * ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) &755 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji,jj+1,jk,jp_tem) )756 END DO757 END DO758 END DO759 CALL lbc_lnk( zw2d, 'V', -1. )760 CALL iom_put( "veiv_heattr", zw2d ) ! heat transport in i-direction761 !762 CALL wrk_dealloc( jpi,jpj, zw2d )763 ENDIF764 808 ! 765 809 IF( nn_timing == 1 ) CALL timing_stop( 'ldf_eiv_dia')
Note: See TracChangeset
for help on using the changeset viewer.