- Timestamp:
- 2020-06-24T09:03:45+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0_mirror_SI3_GPU/src/OCE/LDF/ldftra.F90
r10888 r13149 830 830 zw3d(:,:,jpk) = 0._wp ! bottom value always 0 831 831 ! 832 DO jk = 1, jpkm1 ! e2u e3u u_eiv = -dk[psi_uw] 833 zw3d(:,:,jk) = ( psi_uw(:,:,jk+1) - psi_uw(:,:,jk) ) / ( e2u(:,:) * e3u_n(:,:,jk) ) 834 END DO 835 CALL iom_put( "uoce_eiv", zw3d ) 836 ! 837 DO jk = 1, jpkm1 ! e1v e3v v_eiv = -dk[psi_vw] 838 zw3d(:,:,jk) = ( psi_vw(:,:,jk+1) - psi_vw(:,:,jk) ) / ( e1v(:,:) * e3v_n(:,:,jk) ) 839 END DO 840 CALL iom_put( "voce_eiv", zw3d ) 841 ! 842 DO jk = 1, jpkm1 ! e1 e2 w_eiv = dk[psix] + dk[psix] 843 DO jj = 2, jpjm1 844 DO ji = fs_2, fs_jpim1 ! vector opt. 845 zw3d(ji,jj,jk) = ( psi_vw(ji,jj,jk) - psi_vw(ji ,jj-1,jk) & 846 & + psi_uw(ji,jj,jk) - psi_uw(ji-1,jj ,jk) ) / e1e2t(ji,jj) 847 END DO 848 END DO 849 END DO 850 CALL lbc_lnk( 'ldftra', zw3d, 'T', 1. ) ! lateral boundary condition 851 CALL iom_put( "woce_eiv", zw3d ) 832 IF(iom_use("uoce_eiv")) THEN 833 DO jk = 1, jpkm1 ! e2u e3u u_eiv = -dk[psi_uw] 834 zw3d(:,:,jk) = ( psi_uw(:,:,jk+1) - psi_uw(:,:,jk) ) / ( e2u(:,:) * e3u_n(:,:,jk) ) 835 END DO 836 CALL iom_put( "uoce_eiv", zw3d ) 837 ENDIF 838 ! 839 IF(iom_use("voce_eiv")) THEN 840 DO jk = 1, jpkm1 ! e1v e3v v_eiv = -dk[psi_vw] 841 zw3d(:,:,jk) = ( psi_vw(:,:,jk+1) - psi_vw(:,:,jk) ) / ( e1v(:,:) * e3v_n(:,:,jk) ) 842 END DO 843 CALL iom_put( "voce_eiv", zw3d ) 844 ENDIF 845 ! 846 IF(iom_use("woce_eiv")) THEN 847 DO jk = 1, jpkm1 ! e1 e2 w_eiv = dk[psix] + dk[psix] 848 DO jj = 2, jpjm1 849 DO ji = fs_2, fs_jpim1 ! vector opt. 850 zw3d(ji,jj,jk) = ( psi_vw(ji,jj,jk) - psi_vw(ji ,jj-1,jk) & 851 & + psi_uw(ji,jj,jk) - psi_uw(ji-1,jj ,jk) ) / e1e2t(ji,jj) 852 END DO 853 END DO 854 END DO 855 CALL lbc_lnk( 'ldftra', zw3d, 'T', 1. ) ! lateral boundary condition 856 CALL iom_put( "woce_eiv", zw3d ) 857 ENDIF 852 858 ! 853 859 ! … … 870 876 CALL iom_put( "ueiv_heattr3d", zztmp * zw3d ) ! heat transport in i-direction 871 877 ENDIF 872 zw2d(:,:) = 0._wp 873 zw3d(:,:,:) = 0._wp 874 DO jk = 1, jpkm1 875 DO jj = 2, jpjm1 876 DO ji = fs_2, fs_jpim1 ! vector opt. 877 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 878 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji,jj+1,jk,jp_tem) ) 879 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 880 END DO 881 END DO 882 END DO 883 CALL lbc_lnk( 'ldftra', zw2d, 'V', -1. ) 884 CALL iom_put( "veiv_heattr", zztmp * zw2d ) ! heat transport in j-direction 885 CALL iom_put( "veiv_heattr", zztmp * zw3d ) ! heat transport in j-direction 878 IF( iom_use('veiv_heattr') ) THEN 879 zw2d(:,:) = 0._wp 880 zw3d(:,:,:) = 0._wp 881 DO jk = 1, jpkm1 882 DO jj = 2, jpjm1 883 DO ji = fs_2, fs_jpim1 ! vector opt. 884 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 885 & * ( tsn (ji,jj,jk,jp_tem) + tsn (ji,jj+1,jk,jp_tem) ) 886 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 887 END DO 888 END DO 889 END DO 890 CALL lbc_lnk( 'ldftra', zw2d, 'V', -1. ) 891 CALL iom_put( "veiv_heattr", zztmp * zw2d ) ! heat transport in j-direction 892 CALL iom_put( "veiv_heattr", zztmp * zw3d ) ! heat transport in j-direction 893 ENDIF 886 894 ! 887 895 IF( ln_diaptr ) CALL dia_ptr_hst( jp_tem, 'eiv', 0.5 * zw3d ) … … 905 913 CALL iom_put( "ueiv_salttr3d", zztmp * zw3d ) ! salt transport in i-direction 906 914 ENDIF 907 zw2d(:,:) = 0._wp 908 zw3d(:,:,:) = 0._wp 909 DO jk = 1, jpkm1 910 DO jj = 2, jpjm1 911 DO ji = fs_2, fs_jpim1 ! vector opt. 912 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 913 & * ( tsn (ji,jj,jk,jp_sal) + tsn (ji,jj+1,jk,jp_sal) ) 914 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 915 END DO 916 END DO 917 END DO 918 CALL lbc_lnk( 'ldftra', zw2d, 'V', -1. ) 919 CALL iom_put( "veiv_salttr", zztmp * zw2d ) ! salt transport in j-direction 920 CALL iom_put( "veiv_salttr", zztmp * zw3d ) ! salt transport in j-direction 915 IF( iom_use('veiv_salttr') ) THEN 916 zw2d(:,:) = 0._wp 917 zw3d(:,:,:) = 0._wp 918 DO jk = 1, jpkm1 919 DO jj = 2, jpjm1 920 DO ji = fs_2, fs_jpim1 ! vector opt. 921 zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1) - psi_vw(ji,jj,jk) ) & 922 & * ( tsn (ji,jj,jk,jp_sal) + tsn (ji,jj+1,jk,jp_sal) ) 923 zw2d(ji,jj) = zw2d(ji,jj) + zw3d(ji,jj,jk) 924 END DO 925 END DO 926 END DO 927 CALL lbc_lnk( 'ldftra', zw2d, 'V', -1. ) 928 CALL iom_put( "veiv_salttr", zztmp * zw2d ) ! salt transport in j-direction 929 CALL iom_put( "veiv_salttr", zztmp * zw3d ) ! salt transport in j-direction 930 ENDIF 921 931 ! 922 932 IF( ln_diaptr ) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d )
Note: See TracChangeset
for help on using the changeset viewer.