- Timestamp:
- 2014-02-04T13:12:20+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LBC/exchmod.F90
r4400 r4409 1 1 MODULE exchmod 2 USE par_oce, ONLY: wp, jpiglo, jpjglo, jpkdta, jpi, jpj, jpk 2 USE par_oce, ONLY: wp, jpiglo, jpjglo, jpkdta, jpi, jpj, jpk, jpkorig 3 3 #if defined key_mpp_mpi 4 4 USE mpi ! For better interface checking … … 359 359 ! we can limit the length of our z loops to the 360 360 ! no. of levels above the ocean floor. 361 IF(kdim1 == jpk )kdim1 = jpkf361 IF(kdim1 == jpkorig)kdim1 = jpkf 362 362 ELSEIF ( PRESENT(ib3) ) THEN 363 363 #if defined key_z_first … … 2756 2756 !!---------------------------------------------------------------------- 2757 2757 !FTRANS ptab3d :I :I :z 2758 REAL(wp), INTENT(inout) :: ptab3d( jpi,jpj,jpk)2758 REAL(wp), INTENT(inout) :: ptab3d(:,:,:) 2759 2759 CHARACTER(len=1) , INTENT(in ) :: cd_type ! define the nature of ptab array grid-points 2760 2760 ! ! = T , U , V , F , W points … … 3757 3757 pack_patches3r: DO ipatch=1,npatchsend(isend,1) 3758 3758 3759 IF(nzsendp(ipatch,isend,1) > SIZE(b3,3))THEN 3760 CALL MPI_Abort(mpi_comm_opa,-1,ierr) 3761 CALL ctl_stop('STOP','exchs_generic: b3 has wrong z dimension') 3762 END IF 3763 3759 3764 jstart = jsrcsendp(ipatch,isend,1) 3760 3765 istart = isrcsendp(ipatch,isend,1) … … 3914 3919 istart = idesrecvp(ipatch,irecv,1)!+nhalo 3915 3920 iend = istart+nxrecvp(ipatch,irecv,1)-1 3921 3922 IF(nzrecvp(ipatch,irecv,1) > SIZE(b3,3))THEN 3923 CALL MPI_Abort(mpi_comm_opa,-1,ierr) 3924 CALL ctl_stop('STOP', & 3925 'exchs_generic: wrong z dim for b3 in recv') 3926 END IF 3927 3916 3928 #if defined key_z_first 3917 3929 DO j=jstart, jend, 1 … … 4397 4409 IF(.not. ALLOCATED(ztab))THEN 4398 4410 4399 ALLOCATE(ztab(jpiglo,maxExchItems*ijpj,jpk ), &4400 iztab(jpiglo,maxExchItems*ijpj,jpk ), &4401 znorthgloio(nwidthmax,maxExchItems*ijpj,jpk ,jpni), &4402 znorthloc(nwidthmax,maxExchItems*ijpj,jpk ), &4403 iznorthgloio(nwidthmax,maxExchItems*ijpj,jpk ,jpni), &4404 iznorthloc(nwidthmax,maxExchItems*ijpj,jpk ), &4411 ALLOCATE(ztab(jpiglo,maxExchItems*ijpj,jpkorig), & 4412 iztab(jpiglo,maxExchItems*ijpj,jpkorig), & 4413 znorthgloio(nwidthmax,maxExchItems*ijpj,jpkorig,jpni), & 4414 znorthloc(nwidthmax,maxExchItems*ijpj,jpkorig), & 4415 iznorthgloio(nwidthmax,maxExchItems*ijpj,jpkorig,jpni), & 4416 iznorthloc(nwidthmax,maxExchItems*ijpj,jpkorig), & 4405 4417 STAT=ierr) 4406 4418 IF(ierr .ne. 0)THEN … … 5930 5942 CHARACTER(len=1), INTENT( in ) :: cd_type ! nature of pt3d grid-points 5931 5943 ! ! = T, U, V, F or W gridp'ts 5932 REAL(wp), DIMENSION( jpi,jpj,jpk), INTENT( inout ) :: &5944 REAL(wp), DIMENSION(:,:,:), INTENT( inout ) :: & 5933 5945 pt3d ! 3D array on which the boundary condition is applied 5934 5946 REAL(wp), INTENT( in ) :: & … … 5962 5974 IF(.not. ALLOCATED(ztab))THEN 5963 5975 5964 ALLOCATE(ztab(jpiglo,ijpj,jpk ), &5965 znorthgloio(nwidthmax,ijpj,jpk ,jpni), &5966 znorthloc(nwidthmax,ijpj,jpk ), &5976 ALLOCATE(ztab(jpiglo,ijpj,jpkorig), & 5977 znorthgloio(nwidthmax,ijpj,jpkorig,jpni), & 5978 znorthloc(nwidthmax,ijpj,jpkorig), & 5967 5979 STAT=ierr) 5968 5980 IF(ierr .ne. 0)THEN … … 6006 6018 not done : compiler error 6007 6019 #elif defined key_mpp_mpi 6008 itaille=nwidthmax*jpk *ijpj6020 itaille=nwidthmax*jpkorig*ijpj 6009 6021 CALL MPI_GATHER(znorthloc,itaille,MPI_DOUBLE_PRECISION, & 6010 6022 znorthgloio,itaille,MPI_DOUBLE_PRECISION, & … … 6316 6328 #elif key_mpp_mpi 6317 6329 IF ( npolj /= 0 ) THEN 6318 itaille=nwidthmax*jpk *ijpj6330 itaille=nwidthmax*jpkorig*ijpj 6319 6331 CALL MPI_SCATTER(znorthgloio,itaille,MPI_DOUBLE_PRECISION, & 6320 6332 znorthloc, itaille,MPI_DOUBLE_PRECISION, & … … 6375 6387 CHARACTER(len=1), INTENT( in ) :: cd_type ! nature of pt3d grid-points 6376 6388 ! ! = T, U, V, F or W gridp'ts 6377 INTEGER, DIMENSION( jpi,jpj,jpk), INTENT( inout ) :: &6389 INTEGER, DIMENSION(:,:,:), INTENT( inout ) :: & 6378 6390 ib3 ! 3D array on which the boundary condition is applied 6379 6391 INTEGER, INTENT( in ) :: & … … 6408 6420 IF(.not. ALLOCATED(ztab))THEN 6409 6421 6410 ALLOCATE(ztab(jpiglo,ijpj,jpk ), &6411 znorthgloio(nwidthmax,ijpj,jpk ,jpni), &6412 znorthloc(nwidthmax,ijpj,jpk ), &6422 ALLOCATE(ztab(jpiglo,ijpj,jpkorig), & 6423 znorthgloio(nwidthmax,ijpj,jpkorig,jpni), & 6424 znorthloc(nwidthmax,ijpj,jpkorig), & 6413 6425 STAT=ierr) 6414 6426 IF(ierr .ne. 0)THEN
Note: See TracChangeset
for help on using the changeset viewer.