Changeset 3491 for branches/2012/dev_r3327_MERCATOR1_BDY/NEMOGCM/NEMO
- Timestamp:
- 2012-10-08T16:28:28+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3327_MERCATOR1_BDY/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r3294 r3491 667 667 !!---------------------------------------------------------------------- 668 668 #if defined key_bdy 669 USE bdy_oce, ONLY: dta_global ! workspace to read in global data arrays669 USE bdy_oce, ONLY: dta_global, dta_global2 ! workspace to read in global data arrays 670 670 #endif 671 671 … … 681 681 INTEGER :: ilendta ! length of data in file 682 682 INTEGER :: idvar ! variable ID 683 INTEGER :: ib, ik ! loop counters683 INTEGER :: ib, ik, ji, jj ! loop counters 684 684 INTEGER :: ierr 685 REAL(wp), POINTER, DIMENSION(:,:,:) :: dta_read ! work space for global data685 REAL(wp), POINTER, DIMENSION(:,:,:) :: dta_read ! work space for global data 686 686 !!--------------------------------------------------------------------- 687 687 688 #if defined key_bdy689 dta_read => dta_global690 #endif691 692 688 ipi = SIZE( dta, 1 ) 693 689 ipj = 1 … … 696 692 idvar = iom_varid( num, clvar ) 697 693 ilendta = iom_file(num)%dimsz(1,idvar) 694 695 #if defined key_bdy 696 ipj = iom_file(num)%dimsz(2,idvar) 697 IF (ipj == 1) THEN ! we assume that this is a structured open boundary file 698 dta_read => dta_global 699 ELSE 700 dta_read => dta_global2 701 ENDIF 702 #endif 703 704 IF ((lwp).AND.(ipi>ilendta*ipj)) CALL ctl_stop('fld_map problem with file dimension') 705 698 706 IF(lwp) WRITE(numout,*) 'Dim size for ',TRIM(clvar),' is ', ilendta 699 707 IF(lwp) WRITE(numout,*) 'Number of levels for ',TRIM(clvar),' is ', ipk 708 700 709 701 710 SELECT CASE( ipk ) … … 706 715 END SELECT 707 716 ! 708 DO ib = 1, ipi 709 DO ik = 1, ipk 710 dta(ib,1,ik) = dta_read(map(ib),1,ik) 717 IF (ipj==1) THEN 718 DO ib = 1, ipi 719 DO ik = 1, ipk 720 dta(ib,1,ik) = dta_read(map(ib),1,ik) 721 END DO 711 722 END DO 712 END DO 723 ELSE ! we assume that this is a structured open boundary file 724 DO ib = 1, ipi 725 jj=1+floor(REAL(map(ib)-1)/REAL(ilendta)) 726 ji=map(ib)-(jj-1)*ilendta 727 DO ik = 1, ipk 728 dta(ib,1,ik) = dta_read(ji,jj,ik) 729 END DO 730 END DO 731 ENDIF 713 732 714 733 END SUBROUTINE fld_map
Note: See TracChangeset
for help on using the changeset viewer.