- Timestamp:
- 2015-07-22T09:48:42+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r5620 r5625 773 773 SELECT CASE( igrd ) 774 774 CASE(1) 775 WRITE(*,*) 'reading gdept' 775 776 CALL iom_get ( num, jpdom_unknown, 'gdept', dta_read_z(1:ilendta,1:ipj,1:jpk_bdy) ) 777 WRITE(*,*) 'reading e3t' 776 778 CALL iom_get ( num, jpdom_unknown, 'e3t', dta_read_dz(1:ilendta,1:ipj,1:jpk_bdy) ) 779 WRITE(*,*) 'finished reading' 777 780 CASE(2) 778 781 CALL iom_get ( num, jpdom_unknown, 'gdepu', dta_read_z(1:ilendta,1:ipj,1:jpk_bdy) ) … … 785 788 786 789 #if defined key_bdy 790 WRITE(*,*) 'going in bdy interp' 787 791 CALL fld_bdy_interp(dta_read, dta_read_z, dta_read_dz, map, jpk_bdy, igrd, ibdy, fv, dta, fvl) 792 WRITE(*,*) 'coming out bdy interp' 788 793 #endif 789 794 ELSE ! boundary data assumed to be on model grid … … 839 844 REAL(wp) :: fv_alt, ztrans, ztrans_new ! fillvalue and alternative -ABS(fv) 840 845 !!--------------------------------------------------------------------- 846 847 WRITE(*,*) 'in bdy interp' 841 848 842 849 ipi = SIZE( dta, 1 ) … … 847 854 848 855 fv_alt = -ABS(fv) ! set _FillValue < 0 as we make use of MAXVAL and MAXLOC later 856 849 857 ! 850 858 IF ( map%ll_unstruc ) THEN ! unstructured open boundary data file 859 851 860 DO ib = 1, ipi 852 861 DO ik = 1, jpk_bdy … … 879 888 880 889 IF(igrd == 2) THEN ! do we need to adjust the transport term? 881 DO ib = 1, ipi890 DO ib = 1, ipi 882 891 zh = SUM(dta_read_dz(map%ptr(ib),1,:) ) 883 892 ztrans = 0._wp … … 892 901 DO ik = 1, ipk 893 902 zdz = e3u_0(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd),ik) 894 zz = hur(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd)) 903 zz = hur(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd)) ! Is array HUR the correct one to use???? 895 904 IF(fvl) THEN ! bdy data are total velocity so adjust bt transport term to match input data 896 905 dta(ib,1,ik) = dta(ib,1,ik) + ( ztrans - ztrans_new ) * ( zdz * zz ) … … 903 912 904 913 IF(igrd == 3) THEN ! do we need to adjust the transport term? 905 DO ib = 1, ipi914 DO ib = 1, ipi 906 915 zh = SUM(dta_read_dz(map%ptr(ib),1,:) ) 907 916 ztrans = 0._wp … … 931 940 932 941 ELSE ! structured open boundary file 942 933 943 DO ib = 1, ipi 934 944 jj=1+floor(REAL(map%ptr(ib)-1)/REAL(ilendta)) … … 939 949 dta_read_dz(ji,jj,ik) = 0._wp ! safety: put 0._wp into external thickness factors to ensure transport is correct 940 950 ENDIF 941 ! dta(ib,1,ik) = fv_alt ! put fillvalue into new field as if all goes well all wet points will be replaced942 951 ENDDO 943 952 ENDDO 944 !953 945 954 DO ib = 1, ipi 946 955 jj=1+floor(REAL(map%ptr(ib)-1)/REAL(ilendta)) … … 964 973 END DO 965 974 END DO 966 ENDIF 975 976 IF(igrd == 2) THEN ! do we need to adjust the transport term? 977 jj=1+floor(REAL(map%ptr(ib)-1)/REAL(ilendta)) 978 ji=map%ptr(ib)-(jj-1)*ilendta 979 DO ib = 1, ipi 980 zh = SUM(dta_read_dz(ji,jj,:) ) 981 ztrans = 0._wp 982 ztrans_new = 0._wp 983 DO ik = 1, jpk_bdy 984 ztrans = ztrans + dta_read(ji,jj,ik) * dta_read_dz(ji,jj,ik) 985 ENDDO 986 DO ik = 1, ipk 987 zdz = e3u_0(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd),ik) 988 ztrans_new = ztrans_new + dta(ib,1,ik) * zdz 989 ENDDO 990 DO ik = 1, ipk 991 zdz = e3u_0(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd),ik) 992 zz = hur(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd)) 993 IF(fvl) THEN ! bdy data are total velocity so adjust bt transport term to match input data 994 dta(ib,1,ik) = dta(ib,1,ik) + ( ztrans - ztrans_new ) * ( zdz * zz ) 995 ELSE ! we're just dealing with bc velocity so bt transport term should sum to zero 996 dta(ib,1,ik) = dta(ib,1,ik) + ( 0._wp - ztrans_new ) * ( zdz * zz ) 997 ENDIF 998 ENDDO 999 ENDDO 1000 ENDIF 1001 1002 IF(igrd == 3) THEN ! do we need to adjust the transport term? 1003 jj=1+floor(REAL(map%ptr(ib)-1)/REAL(ilendta)) 1004 ji=map%ptr(ib)-(jj-1)*ilendta 1005 DO ib = 1, ipi 1006 zh = SUM(dta_read_dz(ji,jj,:) ) 1007 ztrans = 0._wp 1008 ztrans_new = 0._wp 1009 DO ik = 1, jpk_bdy 1010 ztrans = ztrans + dta_read(ji,jj,ik) * dta_read_dz(ji,jj,ik) 1011 ENDDO 1012 DO ik = 1, ipk 1013 zdz = e3v_0(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd),ik) 1014 ztrans_new = ztrans_new + dta(ib,1,ik) * zdz 1015 ENDDO 1016 DO ik = 1, ipk 1017 zdz = e3v_0(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd),ik) 1018 zz = hvr(idx_bdy(ibdy)%nbi(ib,igrd),idx_bdy(ibdy)%nbj(ib,igrd)) 1019 IF(fvl) THEN ! bdy data are total velocity so adjust bt transport term to match input data 1020 dta(ib,1,ik) = dta(ib,1,ik) + ( ztrans - ztrans_new ) * ( zdz * zz ) 1021 ELSE ! we're just dealing with bc velocity so bt transport term should sum to zero 1022 dta(ib,1,ik) = dta(ib,1,ik) + ( 0._wp - ztrans_new ) * ( zdz * zz ) 1023 ENDIF 1024 ENDDO 1025 ENDDO 1026 ENDIF 1027 1028 ENDIF ! endif unstructured or structured 967 1029 968 1030 END SUBROUTINE fld_bdy_interp
Note: See TracChangeset
for help on using the changeset viewer.