- Timestamp:
- 2017-12-19T12:47:21+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_conserv_Check/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r8926 r9128 842 842 IF ( lwp ) CALL flush(numout) 843 843 ! 844 !----------------------------------------------------------------------845 ! Excluding Halo version:846 !847 ! This second check dodges around the halo points in the grid848 ! to check that glob_sum is doing what it's supposed to be849 ! doing; note that the loop ordering here is the "correct" way850 ! (according to Dr. Google)851 !852 IF ( lwp ) WRITE(numout,*)853 IF ( lwp ) WRITE(numout,*) ' Elemental cycle totals (check): '854 ! ocean cells855 loc_cycletot3(:) = 0._wp856 loc_vol = 0._wp857 DO jk = 1, jpk858 DO jj = nldj,nlej859 DO ji = nldi,nlei860 loc_vol = loc_vol + cvol(ji,jj,jk)861 ! nitrogen862 zq1 = trn(ji,jj,jk,jpphn) + trn(ji,jj,jk,jpphd) + trn(ji,jj,jk,jpzmi) + &863 trn(ji,jj,jk,jpzme) + trn(ji,jj,jk,jpdet) + trn(ji,jj,jk,jpdin)864 loc_cycletot3(1) = loc_cycletot3(1) + ( zq1 * cvol(ji,jj,jk) )865 ! silicon866 zq1 = trn(ji,jj,jk,jppds) + trn(ji,jj,jk,jpsil)867 loc_cycletot3(2) = loc_cycletot3(2) + ( zq1 * cvol(ji,jj,jk) )868 ! iron869 zq1 = ((trn(ji,jj,jk,jpphn) + trn(ji,jj,jk,jpphd) + trn(ji,jj,jk,jpzmi) + &870 trn(ji,jj,jk,jpzme) + trn(ji,jj,jk,jpdet)) * xrfn) + trn(ji,jj,jk,jpfer)871 loc_cycletot3(3) = loc_cycletot3(3) + ( zq1 * cvol(ji,jj,jk) )872 ! carbon873 zq1 = (trn(ji,jj,jk,jpphn) * xthetapn) + (trn(ji,jj,jk,jpphd) * xthetapd) + &874 (trn(ji,jj,jk,jpzmi) * xthetazmi) + (trn(ji,jj,jk,jpzme) * xthetazme) + &875 trn(ji,jj,jk,jpdtc) + trn(ji,jj,jk,jpdic)876 loc_cycletot3(4) = loc_cycletot3(4) + ( zq1 * cvol(ji,jj,jk) )877 ! alkalinity878 zq1 = trn(ji,jj,jk,jpalk)879 loc_cycletot3(5) = loc_cycletot3(5) + ( zq1 * cvol(ji,jj,jk) )880 ! oxygen881 zq1 = trn(ji,jj,jk,jpoxy)882 loc_cycletot3(6) = loc_cycletot3(6) + ( zq1 * cvol(ji,jj,jk) )883 ENDDO884 ENDDO885 ENDDO886 !887 ! sediment cells888 loc_cycletot2(:) = 0._wp889 loc_area = 0._wp890 jk = 1891 DO jj = nldj,nlej892 DO ji = nldi,nlei893 loc_area = loc_area + (e1e2t(ji,jj) * tmask(ji,jj,jk))894 ! nitrogen895 zq1 = zn_sed_n(ji,jj)896 loc_cycletot2(1) = loc_cycletot2(1) + (zq1 * e1e2t(ji,jj) * tmask(ji,jj,jk))897 ! silicon898 zq1 = zn_sed_si(ji,jj)899 loc_cycletot2(2) = loc_cycletot2(2) + (zq1 * e1e2t(ji,jj) * tmask(ji,jj,jk))900 ! iron901 zq1 = zn_sed_fe(ji,jj)902 loc_cycletot2(3) = loc_cycletot2(3) + (zq1 * e1e2t(ji,jj) * tmask(ji,jj,jk))903 ! carbon904 zq1 = zn_sed_c(ji,jj) + zn_sed_ca(ji,jj)905 loc_cycletot2(4) = loc_cycletot2(4) + (zq1 * e1e2t(ji,jj) * tmask(ji,jj,jk))906 ! alkalinity907 zq1 = zn_sed_ca(ji,jj) * 2._wp908 loc_cycletot2(5) = loc_cycletot2(5) + (zq1 * e1e2t(ji,jj) * tmask(ji,jj,jk))909 ! skip oxygen910 ENDDO911 ENDDO912 IF ( lwp ) WRITE(numout,*) '-- New Check --'913 !914 !----------------------------------------------------------------------915 ! nitrogen916 ! total tracer, and delta917 zq1 = loc_cycletot3(1)918 zq2 = loc_cycletot2(1)919 IF( lk_mpp ) CALL mpp_sum( zq1 )920 IF( lk_mpp ) CALL mpp_sum( zq2 )921 zinvt = zq1 + zq2922 zdelta = zinvt - cycletot2(1)923 zratio = 1.0e2 * zdelta / cycletot2(1)924 !925 IF ( lwp ) WRITE(numout,9010) 'nitrogen', zq1, zq2, zinvt, &926 cycletot2(1), zdelta, zratio927 IF ( lwp ) WRITE(numout,*)928 !929 !----------------------------------------------------------------------930 ! silicon931 zq1 = loc_cycletot3(2)932 zq2 = loc_cycletot2(2)933 IF( lk_mpp ) CALL mpp_sum( zq1 )934 IF( lk_mpp ) CALL mpp_sum( zq2 )935 zinvt = zq1 + zq2936 zdelta = zinvt - cycletot2(2)937 zratio = 1.0e2 * zdelta / cycletot2(2)938 !939 IF ( lwp ) WRITE(numout,9010) 'silicon', zq1, zq2, zinvt, &940 cycletot2(2), zdelta, zratio941 IF ( lwp ) WRITE(numout,*)942 !943 !----------------------------------------------------------------------944 ! iron945 zq1 = loc_cycletot3(3)946 zq2 = loc_cycletot2(3)947 IF( lk_mpp ) CALL mpp_sum( zq1 )948 IF( lk_mpp ) CALL mpp_sum( zq2 )949 zinvt = zq1 + zq2950 zdelta = zinvt - cycletot2(3)951 zratio = 1.0e2 * zdelta / cycletot2(3)952 !953 IF ( lwp ) WRITE(numout,9010) 'iron', zq1, zq2, zinvt, &954 cycletot2(3), zdelta, zratio955 IF ( lwp ) WRITE(numout,*)956 !957 !----------------------------------------------------------------------958 ! carbon959 zq1 = loc_cycletot3(4)960 zq2 = loc_cycletot2(4)961 IF( lk_mpp ) CALL mpp_sum( zq1 )962 IF( lk_mpp ) CALL mpp_sum( zq2 )963 zinvt = zq1 + zq2964 zdelta = zinvt - cycletot2(4)965 zratio = 1.0e2 * zdelta / cycletot2(4)966 !967 IF ( lwp ) WRITE(numout,9010) 'carbon', zq1, zq2, zinvt, &968 cycletot2(4), zdelta, zratio969 IF ( lwp ) WRITE(numout,*)970 !971 !----------------------------------------------------------------------972 ! alkalinity973 zq1 = loc_cycletot3(5)974 zq2 = loc_cycletot2(5)975 IF( lk_mpp ) CALL mpp_sum( zq1 )976 IF( lk_mpp ) CALL mpp_sum( zq2 )977 zinvt = zq1 + zq2978 zdelta = zinvt - cycletot2(5)979 zratio = 1.0e2 * zdelta / cycletot2(5)980 !981 IF ( lwp ) WRITE(numout,9010) 'alkalinity', zq1, zq2, zinvt, &982 cycletot2(5), zdelta, zratio983 IF ( lwp ) WRITE(numout,*)984 !985 !----------------------------------------------------------------------986 ! oxygen987 zq1 = loc_cycletot3(6)988 zq2 = loc_cycletot2(6)989 IF( lk_mpp ) CALL mpp_sum( zq1 )990 IF( lk_mpp ) CALL mpp_sum( zq2 )991 zinvt = zq1 + zq2992 zdelta = zinvt - cycletot2(6)993 zratio = 1.0e2 * zdelta / cycletot2(6)994 !995 IF ( lwp ) WRITE(numout,9010) 'oxygen', zq1, zq2, zinvt, &996 cycletot2(6), zdelta, zratio997 IF ( lwp ) WRITE(numout,*)998 !999 !---------------------------------------------------------------------1000 zq1 = loc_vol1001 zq2 = loc_area1002 IF( lk_mpp ) CALL mpp_sum( zq1 )1003 IF( lk_mpp ) CALL mpp_sum( zq2 )1004 IF ( lwp ) WRITE(numout,*)1005 IF ( lwp ) WRITE(numout,*) ' check : cvol : ', zq11006 IF ( lwp ) WRITE(numout,*) ' check : carea : ', zq21007 IF ( lwp ) WRITE(numout,*)1008 IF ( lwp ) CALL flush(numout)1009 1010 !!1011 !!1012 844 9010 FORMAT(' element:',a10, & 1013 845 ' 3d sum:',e18.10,' 2d sum:',e18.10, &
Note: See TracChangeset
for help on using the changeset viewer.