Changeset 7252
- Timestamp:
- 2016-11-17T16:07:44+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r6140 r7252 730 730 CALL iom_put( "woce_eiv", zw3d ) 731 731 ! 732 CALL wrk_dealloc( jpi,jpj,jpk, zw3d )733 732 ! 734 733 ! 735 IF( lk_diaar5 ) THEN!== eiv heat transport: calculate and output ==!734 IF( lk_diaar5 .OR. ln_diaptr ) THEN !== eiv heat transport: calculate and output ==! 736 735 CALL wrk_alloc( jpi,jpj, zw2d ) 737 736 ! 738 737 zztmp = 0.5_wp * rau0 * rcp 738 IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') THEN 739 zw2d(:,:) = 0._wp 740 zw3d(:,:,:) = 0._wp 741 DO jk = 1, jpkm1 742 DO jj = 2, jpjm1 743 DO ji = fs_2, fs_jpim1 ! vector opt. 744 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + * ( psi_uw(ji,jj,jk+1) - psi_uw(ji,jj,jk) ) & 745 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji+1,jj,jk,jp_tem) ) 746 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 747 END DO 748 END DO 749 END DO 750 CALL lbc_lnk( zw2d, 'U', -1. ) 751 CALL lbc_lnk( zw3d, 'U', -1. ) 752 CALL iom_put( "ueiv_heattr", zztmp * zw2d ) ! heat transport in i-direction 753 CALL iom_put( "ueiv_heattr3d", zztmp * zw3d ) ! heat transport in i-direction 754 ENDIF 739 755 zw2d(:,:) = 0._wp 756 zw3d(:,:) = 0._wp 740 757 DO jk = 1, jpkm1 741 758 DO jj = 2, jpjm1 742 759 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) ) 760 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 761 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji,jj+1,jk,jp_tem) ) 762 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 745 763 END DO 746 764 END DO 747 765 END DO 748 CALL lbc_lnk( zw2d, 'U', -1. ) 749 CALL iom_put( "ueiv_heattr", zw2d ) ! heat transport in i-direction 766 CALL lbc_lnk( zw2d, 'V', -1. ) 767 CALL iom_put( "veiv_heattr", zztmp * zw2d ) ! heat transport in i-direction 768 CALL iom_put( "veiv_heattr", zztmp * zw3d ) ! heat transport in i-direction 769 CALL dia_ptr_ohst_components( 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 750 789 zw2d(:,:) = 0._wp 790 zw3d(:,:) = 0._wp 751 791 DO jk = 1, jpkm1 752 792 DO jj = 2, jpjm1 753 793 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) ) 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) 756 797 END DO 757 798 END DO 758 799 END DO 759 800 CALL lbc_lnk( zw2d, 'V', -1. ) 760 CALL iom_put( "veiv_heattr", zw2d ) ! heat transport in i-direction 761 ! 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 CALL dia_ptr_ohst_components( jp_sal, 'eiv', 0.5 * zw3d ) 804 762 805 CALL wrk_dealloc( jpi,jpj, zw2d ) 763 806 ENDIF 807 CALL wrk_dealloc( jpi,jpj,jpk, zw3d ) 764 808 ! 765 809 IF( nn_timing == 1 ) CALL timing_stop( 'ldf_eiv_dia')
Note: See TracChangeset
for help on using the changeset viewer.