Changeset 5700 for branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP
- Timestamp:
- 2015-08-18T13:10:40+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
r5639 r5700 761 761 CASE(1) ; 762 762 CALL iom_get ( num, jpdom_unknown, clvar, dta_read(1:ilendta,1:ipj,1 ), nrec ) 763 IF ( ipj==1) THEN ! we assume that this is an un-structured open boundaryfile763 IF ( map%ll_unstruc) THEN ! unstructured open boundary data file 764 764 DO ib = 1, ipi 765 765 DO ik = 1, ipk … … 803 803 804 804 #if defined key_bdy 805 CALL fld_bdy_interp(dta_read, dta_read_z, dta_read_dz, map, jpk_bdy, igrd, ibdy, fv, dta, fvl )805 CALL fld_bdy_interp(dta_read, dta_read_z, dta_read_dz, map, jpk_bdy, igrd, ibdy, fv, dta, fvl, ilendta) 806 806 #endif 807 807 ELSE ! boundary data assumed to be on model grid 808 808 809 809 CALL iom_get ( num, jpdom_unknown, clvar, dta_read(1:ilendta,1:ipj,1:ipk), nrec ) 810 IF ( ipj==1) THEN ! we assume that this is an un-structured open boundaryfile810 IF ( map%ll_unstruc) THEN ! unstructured open boundary data file 811 811 DO ib = 1, ipi 812 812 DO ik = 1, ipk … … 829 829 830 830 #if defined key_bdy 831 SUBROUTINE fld_bdy_interp(dta_read, dta_read_z, dta_read_dz, map, jpk_bdy, igrd, ibdy, fv, dta, fvl )831 SUBROUTINE fld_bdy_interp(dta_read, dta_read_z, dta_read_dz, map, jpk_bdy, igrd, ibdy, fv, dta, fvl, ilendta) 832 832 833 833 !!--------------------------------------------------------------------- … … 852 852 INTEGER :: ipj ! length of dummy dimension ( = 1 ) 853 853 INTEGER :: ipk ! number of vertical levels of dta ( 2D: ipk=1 ; 3D: ipk=jpk ) 854 INTEGER :: ilendta ! length of data in file854 INTEGER, INTENT(in) :: ilendta ! length of data in file 855 855 INTEGER :: ib, ik, ikk! loop counters 856 856 INTEGER :: ji, jj ! loop counters … … 859 859 !!--------------------------------------------------------------------- 860 860 861 WRITE(*,*) 'in bdy interp'862 861 863 862 ipi = SIZE( dta, 1 ) 864 863 ipj = SIZE( dta_read, 2 ) 865 864 ipk = SIZE( dta, 3 ) 866 ilendta = SIZE( dta_read, 1 )867 865 jpkm1_bdy = jpk_bdy-1 868 866 869 867 fv_alt = -ABS(fv) ! set _FillValue < 0 as we make use of MAXVAL and MAXLOC later 870 868 … … 966 964 ENDDO 967 965 966 968 967 DO ib = 1, ipi 969 968 jj=1+floor(REAL(map%ptr(ib)-1)/REAL(ilendta)) … … 973 972 IF( zl < dta_read_z(ji,jj,1) ) THEN ! above the first level of external data 974 973 dta(ib,1,ik) = dta_read(ji,jj,1) 975 ELSEIF( zl > MAXVAL(dta_read_z(ji,j i,:),1) ) THEN ! below the last level of external data974 ELSEIF( zl > MAXVAL(dta_read_z(ji,jj,:),1) ) THEN ! below the last level of external data 976 975 dta(ib,1,ik) = dta_read(ji,jj,MAXLOC(dta_read_z(ji,jj,:),1)) 977 976 ELSE ! inbetween : vertical interpolation between ikk & ikk+1
Note: See TracChangeset
for help on using the changeset viewer.