Changeset 4409
- Timestamp:
- 2014-02-04T13:12:20+01:00 (10 years ago)
- Location:
- branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r3849 r4409 146 146 !! DCSE_NEMO: work around deficiency in ftrans 147 147 ! REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk) :: pva ! mask flux array at V-point 148 REAL(wp) , INTENT(in) :: pva(jpi,jpj,jpk ) ! mask flux array at V-point148 REAL(wp) , INTENT(in) :: pva(jpi,jpj,jpkorig) ! mask flux array at V-point 149 149 !! 150 150 INTEGER :: ji, jj, jk ! dummy loop arguments … … 237 237 !! DCSE_NEMO: work around a deficiency in ftrans 238 238 ! REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk) :: pva ! mask flux array at V-point 239 REAL(wp) , INTENT(in) :: pva(jpi,jpj,jpk ) ! mask flux array at V-point239 REAL(wp) , INTENT(in) :: pva(jpi,jpj,jpkorig) ! mask flux array at V-point 240 240 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) , OPTIONAL :: pmsk ! Optional 2D basin mask 241 241 !! … … 317 317 !! DCSE_NEMO: work around a deficiency in ftrans 318 318 ! REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk) :: pta ! tracer flux array at T-point 319 REAL(wp) , INTENT(in) :: pta(jpi,jpj,jpk ) ! tracer flux array at T-point319 REAL(wp) , INTENT(in) :: pta(jpi,jpj,jpkorig) ! tracer flux array at T-point 320 320 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pmsk ! Optional 2D basin mask 321 321 !! -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r4405 r4409 807 807 STATUS=ierr) 808 808 IF( ierr == 0)THEN 809 READ(lstr,FMT="(I )",IOSTAT=ierr) lztrim809 READ(lstr,FMT="(I10)",IOSTAT=ierr) lztrim 810 810 IF(ierr == 0)THEN 811 811 IF (lztrim == 0) domtrim_z = .FALSE. … … 817 817 ! Compute and store the deepest bottom level of any grid-type at each grid 818 818 ! point. For use in removing data below ocean floor from compute loops 819 jpkorig = jpk 819 820 IF( domtrim_z ) THEN 820 821 mbkmax(:,:) = MAX(mbkt(:,:)+1, mbku(:,:), mbkv(:,:)) … … 823 824 WRITE(*,*) narea,': ARPDBG: shallowest pt and jpkf = ', & 824 825 MINVAL(mbkmax(:,:)), jpkf 826 ! Play rather fast and loose and just change the value of jpk 827 ! here... 828 jpk = jpkf 829 jpkm1 = jpk - 1 825 830 ELSE 826 831 WRITE(*,*) narea,': ARPDBG: NOT trimming domain in z' -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DTA/dtasal.F90
r3211 r4409 96 96 97 97 ! Allocate salinity data array 98 ALLOCATE( s_dta(jpi,jpj,jpk ) , STAT=ierr )98 ALLOCATE( s_dta(jpi,jpj,jpkorig) , STAT=ierr ) 99 99 IF( ierr > 0 ) CALL ctl_stop( 'STOP', 'dta_sal: unable to allocate s_dta array' ) 100 100 ! Allocate sf_tem structure 101 101 ierr2 = 0 102 ALLOCATE( sf_sal(1) , STAT=ierr0 )103 ALLOCATE( sf_sal(1)%fnow(jpi,jpj,jpk ) , STAT=ierr1 )104 IF( sn_sal%ln_tint ) ALLOCATE( sf_sal(1)%fdta(jpi,jpj,jpk ,2), STAT=ierr2 )102 ALLOCATE( sf_sal(1) , STAT=ierr0 ) 103 ALLOCATE( sf_sal(1)%fnow(jpi,jpj,jpkorig) , STAT=ierr1 ) 104 IF( sn_sal%ln_tint ) ALLOCATE( sf_sal(1)%fdta(jpi,jpj,jpkorig,2), STAT=ierr2 ) 105 105 IF( ierr0+ierr1+ierr2 > 0 ) CALL ctl_stop( 'STOP', 'dta_sal: unable to allocate sf_sal structure' ) 106 106 ! ! fill sf_sal with sn_sal and control print -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DTA/dtatem.F90
r3211 r4409 103 103 104 104 ! Allocate temperature data array 105 ALLOCATE( t_dta(jpi,jpj,jpk ) , STAT=ierr )105 ALLOCATE( t_dta(jpi,jpj,jpkorig) , STAT=ierr ) 106 106 IF( ierr > 0 ) CALL ctl_stop( 'STOP', 'dta_tem: unable to allocate t_dta array' ) 107 107 ! Allocate sf_tem structure 108 108 ierr2 = 0 109 ALLOCATE( sf_tem(1) , STAT=ierr0 )110 ALLOCATE( sf_tem(1)%fnow(jpi,jpj,jpk ) , STAT=ierr1 )111 IF( sn_tem%ln_tint ) ALLOCATE( sf_tem(1)%fdta(jpi,jpj,jpk ,2), STAT=ierr2 )109 ALLOCATE( sf_tem(1) , STAT=ierr0 ) 110 ALLOCATE( sf_tem(1)%fnow(jpi,jpj,jpkorig) , STAT=ierr1 ) 111 IF( sn_tem%ln_tint ) ALLOCATE( sf_tem(1)%fdta(jpi,jpj,jpkorig,2), STAT=ierr2 ) 112 112 IF( ierr0+ierr1+ierr2 > 0 ) CALL ctl_stop( 'STOP', 'dta_tem: unable to allocate sf_tem structure' ) 113 113 ! ! fill sf_tem with sn_tem and control print -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90
r3432 r4409 211 211 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in ) :: pu , pv ! 1st call: before horizontal velocity 212 212 ! ! 2nd call: ahm x these fields 213 REAL(wp), INTENT(in ) :: pu(jpi,jpj,jpk ) , pv(jpi,jpj,jpk)213 REAL(wp), INTENT(in ) :: pu(jpi,jpj,jpkorig) , pv(jpi,jpj,jpkorig) 214 214 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out) :: plu, plv ! partial harmonic operator applied to 215 215 ! ! pu and pv (all the components except 216 216 ! ! second order vertical derivative term) 217 REAL(wp), INTENT( out) :: plu(jpi,jpj,jpk ), plv(jpi,jpj,jpk) ! partial harmonic operator applied to217 REAL(wp), INTENT( out) :: plu(jpi,jpj,jpkorig), plv(jpi,jpj,jpkorig) ! partial harmonic operator applied to 218 218 INTEGER , INTENT(in ) :: kahm ! =1 1st call ; =2 2nd call 219 219 ! -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r3211 r4409 223 223 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend 224 224 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 225 REAL(wp), INTENT(inout) :: pua(jpi,jpj,jpk ) ! total u-trend226 REAL(wp), INTENT(inout) :: pva(jpi,jpj,jpk ) ! total v-trend225 REAL(wp), INTENT(inout) :: pua(jpi,jpj,jpkorig) ! total u-trend 226 REAL(wp), INTENT(inout) :: pva(jpi,jpj,jpkorig) ! total v-trend 227 227 ! 228 228 INTEGER :: ji, jj, jk ! dummy loop indices … … 459 459 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend 460 460 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 461 REAL(wp), INTENT(inout) :: pua(jpi,jpj,jpk ) ! total u-trend462 REAL(wp), INTENT(inout) :: pva(jpi,jpj,jpk ) ! total v-trend461 REAL(wp), INTENT(inout) :: pua(jpi,jpj,jpkorig) ! total u-trend 462 REAL(wp), INTENT(inout) :: pva(jpi,jpj,jpkorig) ! total v-trend 463 463 ! 464 464 INTEGER :: ji, jj, jk ! dummy loop indices … … 582 582 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend 583 583 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 584 REAL(wp), INTENT(inout) :: pua(jpi,jpj,jpk ) ! total u-trend585 REAL(wp), INTENT(inout) :: pva(jpi,jpj,jpk ) ! total v-trend584 REAL(wp), INTENT(inout) :: pua(jpi,jpj,jpkorig) ! total u-trend 585 REAL(wp), INTENT(inout) :: pva(jpi,jpj,jpkorig) ! total v-trend 586 586 !! 587 587 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r3432 r4409 863 863 ELSEIF( PRESENT(pv_r3d) .AND. idom /= jpdom_unknown ) THEN 864 864 ! this if could be simplified with the new lbc_lnk that works with any size of the 3rd dimension 865 IF( icnt(3) == jpk ) THEN865 IF( icnt(3) == jpkorig ) THEN 866 866 CALL lbc_lnk( pv_r3d,'Z',-999.,'no0' ) 867 867 ELSE ! put some arbitrary value (a call to lbc_lnk will be done later...) -
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 -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LBC/exchtestmod.F90
r4400 r4409 67 67 68 68 SUBROUTINE mpp_test_comms(depth, lmaxdepth) 69 USE par_oce, ONLY: jpi, jpj, jpk, jp reci69 USE par_oce, ONLY: jpi, jpj, jpk, jpkorig, jpreci 70 70 USE par_kind, ONLY: wp 71 71 USE mapcomm_mod, ONLY: Iminus, Iplus, Jminus, Jplus, NONE … … 97 97 test_failed = .FALSE. 98 98 99 ALLOCATE(r3d(jpi,jpj,jpk ), r3d_2(jpi,jpj,jpk), r3d_3(jpi,jpj,jpk), &99 ALLOCATE(r3d(jpi,jpj,jpkorig), r3d_2(jpi,jpj,jpkorig), r3d_3(jpi,jpj,jpkorig), & 100 100 r2d(jpi,jpj), r2d_2(jpi,jpj), Stat=ierr) 101 101 … … 242 242 DEALLOCATE(r3d, r3d_2, r3d_3, r2d) 243 243 ! and allocate that for integer-array tests 244 ALLOCATE(i3d(jpi,jpj,jpk ), i3d_2(jpi,jpj,jpk), &244 ALLOCATE(i3d(jpi,jpj,jpkorig), i3d_2(jpi,jpj,jpkorig), & 245 245 i2d(jpi,jpj), i2d_2(jpi,jpj), Stat=ierr) 246 246 -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LBC/lbclnk.F90
r3837 r4409 96 96 ! DCSE_NEMO: work around a deficiency in ftrans 97 97 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pt3d1 , pt3d2 ! 3D array on which the lbc is applied 98 REAL(wp), INTENT(inout) :: pt3d1(jpi,jpj,jpk ) , pt3d2(jpi,jpj,jpk)98 REAL(wp), INTENT(inout) :: pt3d1(jpi,jpj,jpkorig), pt3d2(jpi,jpj,jpkorig) 99 99 REAL(wp), INTENT(in ) :: psgn ! control of the sign 100 100 !!---------------------------------------------------------------------- … … 123 123 !! DCSE_NEMO: work around a deficiency in ftrans 124 124 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pt3d ! 3D array on which the lbc is applied 125 REAL(wp), INTENT(inout) :: pt3d(jpi,jpj,jpk )125 REAL(wp), INTENT(inout) :: pt3d(jpi,jpj,jpkorig) 126 126 REAL(wp) , INTENT(in ) :: psgn ! control of the sign 127 127 CHARACTER(len=3) , INTENT(in ), OPTIONAL :: cd_mpp ! MPP only (here do nothing) -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r3849 r4409 133 133 134 134 ! North fold condition in mpp_mpi with jpni > 1 135 INTEGER :: ngrp_world! group ID for the world processors136 INTEGER :: ngrp_opa! group ID for the opa processors137 INTEGER :: ngrp_north! group ID for the northern processors (to be fold)138 INTEGER :: ncomm_north! communicator made by the processors belonging to ngrp_north139 INTEGER :: ndim_rank_north! number of 'sea' processor in the northern line (can be /= jpni !)140 INTEGER :: njmppmax! value of njmpp for the processors of the northern line141 INTEGER :: north_root! number (in the comm_opa) of proc 0 in the northern comm135 INTEGER, SAVE :: ngrp_world ! group ID for the world processors 136 INTEGER, SAVE :: ngrp_opa ! group ID for the opa processors 137 INTEGER, SAVE :: ngrp_north ! group ID for the northern processors (to be fold) 138 INTEGER, SAVE :: ncomm_north ! communicator made by the processors belonging to ngrp_north 139 INTEGER, SAVE :: ndim_rank_north ! number of 'sea' processor in the northern line (can be /= jpni !) 140 INTEGER, SAVE :: njmppmax ! value of njmpp for the processors of the northern line 141 INTEGER, SAVE :: north_root ! number (in the comm_opa) of proc 0 in the northern comm 142 142 INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: nrank_north ! dimension ndim_rank_north 143 143 … … 453 453 !! DCSE_NEMO: work around a deficiency in ftrans 454 454 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: ptab3d ! 3D array on which the boundary condition is applied 455 REAL(wp), INTENT(inout) :: ptab3d(jpi,jpj,jpk )455 REAL(wp), INTENT(inout) :: ptab3d(jpi,jpj,jpkorig) 456 456 CHARACTER(len=1) , INTENT(in ) :: cd_type ! define the nature of ptab array grid-points 457 457 ! ! = T , U , V , F , W points … … 890 890 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: ptab1 ! first and second 3D array on which 891 891 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: ptab2 ! the boundary condition is applied 892 REAL(wp), INTENT(inout) :: ptab1(jpi,jpj,jpk )893 REAL(wp), INTENT(inout) :: ptab2(jpi,jpj,jpk )892 REAL(wp), INTENT(inout) :: ptab1(jpi,jpj,jpkorig) 893 REAL(wp), INTENT(inout) :: ptab2(jpi,jpj,jpkorig) 894 894 CHARACTER(len=1) , INTENT(in ) :: cd_type1 ! nature of ptab1 and ptab2 arrays 895 895 CHARACTER(len=1) , INTENT(in ) :: cd_type2 ! i.e. grid-points = T , U , V , F or W points … … 1721 1721 ! REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(in ) :: ptab3d ! Local 3D array 1722 1722 ! REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(in ) :: pmask3d ! Local mask 1723 REAL(wp), INTENT(in ) :: ptab3d(jpi,jpj,jpk )1724 REAL(wp), INTENT(in ) :: pmask3d(jpi,jpj,jpk )1723 REAL(wp), INTENT(in ) :: ptab3d(jpi,jpj,jpkorig) 1724 REAL(wp), INTENT(in ) :: pmask3d(jpi,jpj,jpkorig) 1725 1725 REAL(wp) , INTENT( out) :: pmin ! Global minimum of ptab 1726 1726 INTEGER , INTENT( out) :: ki, kj, kk ! index of minimum in global frame … … 1813 1813 ! REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(in ) :: ptab3d ! Local 2D array 1814 1814 ! REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(in ) :: pmask3d ! Local mask 1815 REAL(wp), INTENT(in ) :: ptab3d(jpi,jpj,jpk ) ! Local 2D array1816 REAL(wp), INTENT(in ) :: pmask3d(jpi,jpj,jpk ) ! Local mask1815 REAL(wp), INTENT(in ) :: ptab3d(jpi,jpj,jpkorig) ! Local 2D array 1816 REAL(wp), INTENT(in ) :: pmask3d(jpi,jpj,jpkorig) ! Local mask 1817 1817 REAL(wp) , INTENT( out) :: pmax ! Global maximum of ptab 1818 1818 INTEGER , INTENT( out) :: ki, kj, kk ! index of maximum in global frame … … 2368 2368 !! DCSE_NEMO: work around a deficiency in ftrans 2369 2369 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pt3d ! 3D array on which the b.c. is applied 2370 REAL(wp), INTENT(inout) :: pt3d(jpi,jpj,jpk )2370 REAL(wp), INTENT(inout) :: pt3d(jpi,jpj,jpkorig) 2371 2371 CHARACTER(len=1) , INTENT(in ) :: cd_type ! nature of pt3d grid-points 2372 2372 ! ! = T , U , V , F or W gridpoints … … 2873 2873 IF( PRESENT(cd10) ) WRITE(numout,*) cd10 2874 2874 ENDIF 2875 CALLFLUSH(numout )2876 IF( numstp /= -1 ) CALLFLUSH(numstp )2877 IF( numsol /= -1 ) CALLFLUSH(numsol )2878 IF( numevo_ice /= -1 ) CALLFLUSH(numevo_ice)2875 FLUSH(numout ) 2876 IF( numstp /= -1 ) FLUSH(numstp ) 2877 IF( numsol /= -1 ) FLUSH(numsol ) 2878 IF( numevo_ice /= -1 ) FLUSH(numevo_ice) 2879 2879 ! 2880 2880 IF( cd1 == 'STOP' ) THEN … … 2912 2912 IF( PRESENT(cd10) ) WRITE(numout,*) cd10 2913 2913 ENDIF 2914 CALLFLUSH(numout)2914 FLUSH(numout) 2915 2915 ! 2916 2916 END SUBROUTINE ctl_warn -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90
r3211 r4409 171 171 REAL(wp), INTENT(in ) :: pwam ! width of inflection 172 172 REAL(wp), INTENT(in ) :: pbot ! bottom value (0<pbot<= 1) 173 REAL(wp), INTENT(in ), DIMENSION(jpk ) :: pdep ! depth of the gridpoint (T, U, V, F)174 REAL(wp), INTENT(inout), DIMENSION(jpk ) :: pah ! adimensional vertical profile173 REAL(wp), INTENT(in ), DIMENSION(jpkorig) :: pdep ! depth of the gridpoint (T, U, V, F) 174 REAL(wp), INTENT(inout), DIMENSION(jpkorig) :: pah ! adimensional vertical profile 175 175 !! 176 176 INTEGER :: jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r4402 r4409 928 928 929 929 IF( ln_traldf_grif ) THEN ! Griffies operator : triad of slopes 930 ALLOCATE( triadi_g(jpi,jpj,jpk,0:1,0:1) , triadj_g(jpi,jpj,jpk,0:1,0:1) , wslp2(jpi,jpj,jpk) , STAT=ierr ) 931 ALLOCATE( triadi (jpi,jpj,jpk,0:1,0:1) , triadj (jpi,jpj,jpk,0:1,0:1) , STAT=ierr ) 930 ALLOCATE(triadi_g(jpi,jpj,jpkorig,0:1,0:1), triadj_g(jpi,jpj,jpkorig,0:1,0:1), & 931 wslp2(jpi,jpj,jpkorig) , STAT=ierr) 932 ALLOCATE(triadi (jpi,jpj,jpkorig,0:1,0:1), triadj (jpi,jpj,jpkorig,0:1,0:1), & 933 STAT=ierr) 932 934 IF( ierr > 0 ) CALL ctl_stop( 'STOP', 'ldf_slp_init : unable to allocate Griffies operator slope' ) 933 935 IF( ldf_slp_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'ldf_slp_init : unable to allocate workspace arrays' ) … … 939 941 ! 940 942 ELSE ! Madec operator : slopes at u-, v-, and w-points 941 ALLOCATE( uslp(jpi,jpj,jpk) , vslp(jpi,jpj,jpk) , wslpi(jpi,jpj,jpk) , wslpj(jpi,jpj,jpk) , & 942 & omlmask(jpi,jpj,jpk) , uslpml(jpi,jpj) , vslpml(jpi,jpj) , wslpiml(jpi,jpj) , wslpjml(jpi,jpj) , STAT=ierr ) 943 ALLOCATE(uslp(jpi,jpj,jpkorig), vslp(jpi,jpj,jpkorig), & 944 wslpi(jpi,jpj,jpkorig), wslpj(jpi,jpj,jpkorig), & 945 omlmask(jpi,jpj,jpkorig), & 946 uslpml(jpi,jpj), vslpml(jpi,jpj), wslpiml(jpi,jpj), wslpjml(jpi,jpj), STAT=ierr) 943 947 IF( ierr > 0 ) CALL ctl_stop( 'STOP', 'ldf_slp_init : unable to allocate Madec operator slope ' ) 944 948 -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
r3211 r4409 297 297 ! REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( out) :: prd ! in situ density [-] 298 298 ! REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( out) :: prhop ! potential density (surface referenced) 299 REAL(wp), INTENT(in ) :: pts(jpi,jpj,jpk ,jpts) ! 1 : potential temperature [Celcius]299 REAL(wp), INTENT(in ) :: pts(jpi,jpj,jpkorig,jpts) ! 1 : potential temperature [Celcius] 300 300 ! ! 2 : salinity [psu] 301 REAL(wp), INTENT( out) :: prd(jpi,jpj,jpk ) ! in situ density [-]302 REAL(wp), INTENT( out) :: prhop(jpi,jpj,jpk ) ! potential density (surface referenced)301 REAL(wp), INTENT( out) :: prd(jpi,jpj,jpkorig) ! in situ density [-] 302 REAL(wp), INTENT( out) :: prhop(jpi,jpj,jpkorig) ! potential density (surface referenced) 303 303 ! 304 304 INTEGER :: ji, jj, jk ! dummy loop indices … … 599 599 ! REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT( out) :: pn2 ! Brunt-Vaisala frequency [s-1] 600 600 601 REAL(wp), INTENT(in ) :: pts(jpi,jpj,jpk ,jpts) ! 1 : potential temperature [Celcius]601 REAL(wp), INTENT(in ) :: pts(jpi,jpj,jpkorig,jpts) ! 1 : potential temperature [Celcius] 602 602 ! ! 2 : salinity [psu] 603 REAL(wp), INTENT( out) :: pn2(jpi,jpj,jpk ) ! Brunt-Vaisala frequency [s-1]603 REAL(wp), INTENT( out) :: pn2(jpi,jpj,jpkorig) ! Brunt-Vaisala frequency [s-1] 604 604 !! 605 605 INTEGER :: ji, jj, jk ! dummy loop indices … … 764 764 ! REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! pot. temperature & salinity 765 765 ! REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT( out) :: palph, pbeta ! thermal & haline expansion coeff. 766 REAL(wp), INTENT(in ) :: pts(jpi,jpj,jpk ,jpts) ! pot. temperature & salinity767 REAL(wp), INTENT( out) :: palph(jpi,jpj,jpk ) ! thermal expansion coeff.768 REAL(wp), INTENT( out) :: pbeta(jpi,jpj,jpk ) ! haline expansion coeff.766 REAL(wp), INTENT(in ) :: pts(jpi,jpj,jpkorig,jpts) ! pot. temperature & salinity 767 REAL(wp), INTENT( out) :: palph(jpi,jpj,jpkorig) ! thermal expansion coeff. 768 REAL(wp), INTENT( out) :: pbeta(jpi,jpj,jpkorig) ! haline expansion coeff. 769 769 ! 770 770 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90
r3211 r4409 134 134 135 135 !FTRANS pun pvn pwn :I :I :z 136 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! ocean velocity component137 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! ocean velocity component138 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! ocean velocity component136 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! ocean velocity component 137 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! ocean velocity component 138 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! ocean velocity component 139 139 !FTRANS ptb ptn pta :I :I :z : 140 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer field (before)141 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer field (now)142 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend140 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer field (before) 141 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer field (now) 142 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 143 143 ! 144 144 INTEGER :: ji, jj, jk, jn ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r3211 r4409 84 84 85 85 !FTRANS pun pvn pwn :I :I :z 86 REAL(wp), INTENT(inout) :: pun(jpi,jpj,jpk ) ! in : 3 ocean velocity components87 REAL(wp), INTENT(inout) :: pvn(jpi,jpj,jpk ) ! out: 3 ocean velocity components88 REAL(wp), INTENT(inout) :: pwn(jpi,jpj,jpk ) ! increased by the eiv86 REAL(wp), INTENT(inout) :: pun(jpi,jpj,jpkorig) ! in : 3 ocean velocity components 87 REAL(wp), INTENT(inout) :: pvn(jpi,jpj,jpkorig) ! out: 3 ocean velocity components 88 REAL(wp), INTENT(inout) :: pwn(jpi,jpj,jpkorig) ! increased by the eiv 89 89 !! 90 90 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r3211 r4409 77 77 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 78 78 INTEGER , INTENT(in ) :: kjpt ! number of tracers 79 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step79 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 80 80 81 81 !! DCSE_NEMO: This style defeats ftrans … … 87 87 !FTRANS ptb :I :I :z : 88 88 !FTRANS pta :I :I :z : 89 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! ocean velocity component (u)90 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! ocean velocity component (v)91 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! ocean velocity component (w)92 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer fields (before)93 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend89 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! ocean velocity component (u) 90 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! ocean velocity component (v) 91 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! ocean velocity component (w) 92 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer fields (before) 93 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 94 94 95 95 ! -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r3211 r4409 74 74 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 75 75 INTEGER , INTENT(in ) :: kjpt ! number of tracers 76 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step76 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 77 77 78 78 !! DCSE_NEMO: This style defeats ftrans … … 84 84 !FTRANS ptb ptn :I :I :z : 85 85 !FTRANS pta :I :I :z : 86 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! ocean velocity component (u)87 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! ocean velocity component (v)88 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! ocean velocity component (w)89 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer fields (before)90 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer fields (now)91 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend86 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! ocean velocity component (u) 87 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! ocean velocity component (v) 88 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! ocean velocity component (w) 89 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer fields (before) 90 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer fields (now) 91 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 92 92 93 93 !! -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r3211 r4409 89 89 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 90 90 INTEGER , INTENT(in ) :: kjpt ! number of tracers 91 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step91 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 92 92 93 93 !! DCSE_NEMO: This style defeats ftrans … … 99 99 !FTRANS ptb ptn :I :I :z : 100 100 !FTRANS pta :I :I :z : 101 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! ocean velocity component (u)102 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! ocean velocity component (v)103 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! ocean velocity component (w)104 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer fields (before)105 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer fields (now)106 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend101 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! ocean velocity component (u) 102 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! ocean velocity component (v) 103 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! ocean velocity component (w) 104 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer fields (before) 105 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer fields (now) 106 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 107 107 108 108 !!---------------------------------------------------------------------- … … 151 151 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 152 152 INTEGER , INTENT(in ) :: kjpt ! number of tracers 153 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step153 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 154 154 155 155 !! DCSE_NEMO: This style defeats ftrans … … 160 160 !FTRANS pun :I :I :z 161 161 !FTRANS ptb ptn pta :I :I :z : 162 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! i-velocity component163 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer field (before)164 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer field (now)165 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend162 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! i-velocity component 163 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer field (before) 164 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer field (now) 165 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 166 166 167 167 !! … … 334 334 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 335 335 INTEGER , INTENT(in ) :: kjpt ! number of tracers 336 REAL(wp), DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step336 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 337 337 338 338 !! DCSE_NEMO: This style defeats ftrans … … 343 343 !FTRANS pvn :I :I :z 344 344 !FTRANS ptb ptn pta :I :I :z : 345 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! j-velocity component346 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer field (before)347 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer field (now)348 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend345 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! j-velocity component 346 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer field (before) 347 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer field (now) 348 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 349 349 350 350 !! … … 532 532 !FTRANS pwn :I :I :z 533 533 !FTRANS ptn pta :I :I :z : 534 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! vertical velocity535 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer fields (now)536 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend534 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! vertical velocity 535 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer fields (now) 536 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 537 537 538 538 ! … … 614 614 615 615 !FTRANS pfu pfd pfc puc :I :I :z 616 REAL(wp), INTENT(in ) :: pfu(jpi,jpj,jpk ) ! second upwind point617 REAL(wp), INTENT(in ) :: pfd(jpi,jpj,jpk ) ! first douwning point618 REAL(wp), INTENT(in ) :: pfc(jpi,jpj,jpk ) ! the central point (or the first upwind point)619 REAL(wp), INTENT(inout) :: puc(jpi,jpj,jpk ) ! input as Courant number ; output as flux616 REAL(wp), INTENT(in ) :: pfu(jpi,jpj,jpkorig) ! second upwind point 617 REAL(wp), INTENT(in ) :: pfd(jpi,jpj,jpkorig) ! first douwning point 618 REAL(wp), INTENT(in ) :: pfc(jpi,jpj,jpkorig) ! the central point (or the first upwind point) 619 REAL(wp), INTENT(inout) :: puc(jpi,jpj,jpkorig) ! input as Courant number ; output as flux 620 620 621 621 !! -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r4401 r4409 83 83 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 84 84 INTEGER , INTENT(in ) :: kjpt ! number of tracers 85 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step85 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 86 86 87 87 !! DCSE_NEMO: This style defeats ftrans … … 92 92 !FTRANS pun pvn pwn :I :I :z 93 93 !FTRANS ptb ptn pta :I :I :z : 94 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! ocean velocity component (u)95 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! ocean velocity component (v)96 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! ocean velocity component (w)97 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer fields (before)98 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer fields (now)99 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend94 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! ocean velocity component (u) 95 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! ocean velocity component (v) 96 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! ocean velocity component (w) 97 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer fields (before) 98 REAL(wp), INTENT(in ) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer fields (now) 99 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 100 100 101 101 ! … … 367 367 368 368 ! 369 REAL(wp), DIMENSION(jpk ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step369 REAL(wp), DIMENSION(jpkorig) , INTENT(in ) :: p2dt ! vertical profile of tracer time-step 370 370 371 371 !! DCSE_NEMO: This style defeats ftrans … … 375 375 !FTRANS pbef paft :I :I :z 376 376 !FTRANS paa pbb pcc :I :I :z 377 REAL(wp), INTENT(in ) :: pbef(jpi,jpj,jpk ), paft(jpi,jpj,jpk) ! before & after field378 REAL(wp), INTENT(inout) :: paa(jpi,jpj,jpk ) ! monotonic fluxes in the 1st direction379 REAL(wp), INTENT(inout) :: pbb(jpi,jpj,jpk ) ! monotonic fluxes in the 2nd direction380 REAL(wp), INTENT(inout) :: pcc(jpi,jpj,jpk ) ! monotonic fluxes in the 3rd direction377 REAL(wp), INTENT(in ) :: pbef(jpi,jpj,jpkorig), paft(jpi,jpj,jpkorig) ! before & after field 378 REAL(wp), INTENT(inout) :: paa(jpi,jpj,jpkorig) ! monotonic fluxes in the 1st direction 379 REAL(wp), INTENT(inout) :: pbb(jpi,jpj,jpkorig) ! monotonic fluxes in the 2nd direction 380 REAL(wp), INTENT(inout) :: pcc(jpi,jpj,jpkorig) ! monotonic fluxes in the 3rd direction 381 381 ! 382 382 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r3211 r4409 91 91 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 92 92 INTEGER , INTENT(in ) :: kjpt ! number of tracers 93 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step93 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 94 94 95 95 ! REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocity components … … 99 99 !FTRANS pun pvn pwn :I :I :z 100 100 !FTRANS ptb ptn pta :I :I :z : 101 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpk ) ! ocean velocity component (u)102 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpk ) ! ocean velocity component (v)103 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpk ) ! ocean velocity component (w)101 REAL(wp), INTENT(in ) :: pun(jpi,jpj,jpkorig) ! ocean velocity component (u) 102 REAL(wp), INTENT(in ) :: pvn(jpi,jpj,jpkorig) ! ocean velocity component (v) 103 REAL(wp), INTENT(in ) :: pwn(jpi,jpj,jpkorig) ! ocean velocity component (w) 104 104 !! DCSE_NEMO: Next two arguments made inout to silence the cray compile, 105 105 !! which rightly complains about the call to nonosc_v (which also has them 106 106 !! as inout) 107 REAL(wp), INTENT(inout) :: ptb(jpi,jpj,jpk ,kjpt) ! tracer fields (before)108 REAL(wp), INTENT(inout) :: ptn(jpi,jpj,jpk ,kjpt) ! tracer fields (now)109 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend107 REAL(wp), INTENT(inout) :: ptb(jpi,jpj,jpkorig,kjpt) ! tracer fields (before) 108 REAL(wp), INTENT(inout) :: ptn(jpi,jpj,jpkorig,kjpt) ! tracer fields (now) 109 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 110 110 111 111 ! … … 381 381 382 382 ! 383 REAL(wp), INTENT(in ), DIMENSION(jpk ) :: p2dt ! vertical profile of tracer time-step383 REAL(wp), INTENT(in ), DIMENSION(jpkorig) :: p2dt ! vertical profile of tracer time-step 384 384 385 385 !! DCSE_NEMO: This style defeats ftrans … … 389 389 390 390 !FTRANS pbef paft pcc :I :I :z 391 REAL(wp), INTENT(inout) :: pbef(jpi,jpj,jpk ) ! before field392 REAL(wp), INTENT(inout) :: paft(jpi,jpj,jpk ) ! after field393 REAL(wp), INTENT(inout) :: pcc(jpi,jpj,jpk ) ! monotonic flux in the k direction391 REAL(wp), INTENT(inout) :: pbef(jpi,jpj,jpkorig) ! before field 392 REAL(wp), INTENT(inout) :: paft(jpi,jpj,jpkorig) ! after field 393 REAL(wp), INTENT(inout) :: pcc(jpi,jpj,jpkorig) ! monotonic flux in the k direction 394 394 ! 395 395 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90
r3211 r4409 282 282 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: presto ! restoring coeff. (s-1) 283 283 !FTRANS presto :I :I :z 284 REAL(wp), INTENT(inout) :: presto(jpi,jpj,jpk ) ! restoring coeff. (s-1)284 REAL(wp), INTENT(inout) :: presto(jpi,jpj,jpkorig) ! restoring coeff. (s-1) 285 285 ! 286 286 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 388 388 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: presto ! restoring coeff. (s-1) 389 389 !FTRANS presto :I :I :z 390 REAL(wp), INTENT(inout) :: presto(jpi,jpj,jpk ) ! restoring coeff. (s-1)390 REAL(wp), INTENT(inout) :: presto(jpi,jpj,jpkorig) ! restoring coeff. (s-1) 391 391 392 392 ! … … 656 656 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) :: pdct ! distance to the coastline 657 657 !FTRANS pdct :I :I :z 658 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( out ) :: pdct ! distance to the coastline658 REAL(wp), DIMENSION(jpi,jpj,jpkorig), INTENT( out ) :: pdct ! distance to the coastline 659 659 660 660 !! -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
r3211 r4409 91 91 INTEGER , INTENT(in ) :: kjpt ! number of tracers 92 92 INTEGER , INTENT(in ) :: kn_zdfexp ! number of sub-time step 93 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step93 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 94 94 95 95 !! DCSE_NEMO: This style defeats ftrans … … 98 98 99 99 !FTRANS ptb pta :I :I :z : 100 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! before and now tracer fields101 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend100 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! before and now tracer fields 101 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 102 102 ! 103 103 INTEGER :: ji, jj, jk, jn, jl ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r3432 r4409 97 97 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 98 98 INTEGER , INTENT(in ) :: kjpt ! number of tracers 99 REAL(wp), DIMENSION( jpk), INTENT(in ) :: p2dt ! vertical profile of tracer time-step99 REAL(wp), DIMENSION( jpkorig ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 100 100 101 101 !! DCSE_NEMO: This style defeats ftrans … … 104 104 105 105 !FTRANS ptb pta :I :I :z : 106 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpk ,kjpt) ! before and now tracer fields107 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpk ,kjpt) ! tracer trend106 REAL(wp), INTENT(in ) :: ptb(jpi,jpj,jpkorig,kjpt) ! before and now tracer fields 107 REAL(wp), INTENT(inout) :: pta(jpi,jpj,jpkorig,kjpt) ! tracer trend 108 108 ! 109 109 INTEGER :: ji, jj, jk, jn ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90
r3211 r4409 95 95 ! REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: pta ! 4D tracers fields 96 96 !FTRANS pta :I :I :z : 97 REAL(wp), INTENT(in ) :: pta(jpi,jpj,jpk ,kjpt) ! 4D tracers fields97 REAL(wp), INTENT(in ) :: pta(jpi,jpj,jpkorig,kjpt) ! 4D tracers fields 98 98 99 99 REAL(wp), DIMENSION(jpi,jpj, kjpt), INTENT( out) :: pgtu, pgtv ! hor. grad. of ptra at u- & v-pts … … 101 101 ! REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ), OPTIONAL :: prd ! 3D density anomaly fields 102 102 !FTRANS prd :I :I :z 103 REAL(wp), INTENT(in ), OPTIONAL :: prd(jpi,jpj,jpk ) ! 3D density anomaly fields103 REAL(wp), INTENT(in ), OPTIONAL :: prd(jpi,jpj,jpkorig) ! 3D density anomaly fields 104 104 105 105 REAL(wp), DIMENSION(jpi,jpj ), INTENT( out), OPTIONAL :: pgru, pgrv ! hor. grad. of prd at u- & v-pts -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdicp.F90
r3432 r4409 135 135 136 136 !FTRANS ptrd3dx ptrd3dy :I :I :z 137 REAL(wp), INTENT(inout) :: ptrd3dx(jpi,jpj,jpk ) ! Temperature or U trend138 REAL(wp), INTENT(inout) :: ptrd3dy(jpi,jpj,jpk ) ! Salinity or V trend137 REAL(wp), INTENT(inout) :: ptrd3dx(jpi,jpj,jpkorig) ! Temperature or U trend 138 REAL(wp), INTENT(inout) :: ptrd3dy(jpi,jpj,jpkorig) ! Salinity or V trend 139 139 140 140 INTEGER, INTENT(in ) :: ktrd ! momentum or tracer trend index -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdmld.F90
r3211 r4409 113 113 114 114 !FTRANS pttrdmld pstrdmld :I :I :z 115 REAL(wp), INTENT( in ) :: pttrdmld(jpi,jpj,jpk ) ! temperature trend116 REAL(wp), INTENT( in ) :: pstrdmld(jpi,jpj,jpk ) ! salinity trend115 REAL(wp), INTENT( in ) :: pttrdmld(jpi,jpj,jpkorig) ! temperature trend 116 REAL(wp), INTENT( in ) :: pstrdmld(jpi,jpj,jpkorig) ! salinity trend 117 117 ! 118 118 INTEGER :: ji, jj, jk, isum -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
r3211 r4409 84 84 85 85 !FTRANS ptrd pun ptra :I :I :z 86 REAL(wp), INTENT(in) :: ptrd(jpi,jpj,jpk )! tracer trend or flux87 REAL(wp), INTENT(in), OPTIONAL :: pun(jpi,jpj,jpk )! velocity88 REAL(wp), INTENT(in), OPTIONAL :: ptra(jpi,jpj,jpk )! Tracer variable86 REAL(wp), INTENT(in) :: ptrd(jpi,jpj,jpkorig) ! tracer trend or flux 87 REAL(wp), INTENT(in), OPTIONAL :: pun(jpi,jpj,jpkorig) ! velocity 88 REAL(wp), INTENT(in), OPTIONAL :: ptra(jpi,jpj,jpkorig) ! Tracer variable 89 89 !!---------------------------------------------------------------------- 90 90 … … 180 180 181 181 !FTRANS pf pun ptn :I :I :z 182 REAL(wp) , INTENT(in ) :: pf(jpi,jpj,jpk ) ! advective flux in one direction183 REAL(wp) , INTENT(in ) :: pun(jpi,jpj,jpk ) ! now velocity in one direction184 REAL(wp) , INTENT(in ) :: ptn(jpi,jpj,jpk ) ! now or before tracer182 REAL(wp) , INTENT(in ) :: pf(jpi,jpj,jpkorig) ! advective flux in one direction 183 REAL(wp) , INTENT(in ) :: pun(jpi,jpj,jpkorig) ! now velocity in one direction 184 REAL(wp) , INTENT(in ) :: ptn(jpi,jpj,jpkorig) ! now or before tracer 185 185 CHARACTER(len=1), INTENT(in ) :: cdir ! X/Y/Z direction 186 186 187 187 ! REAL(wp) , INTENT(out), DIMENSION(jpi,jpj,jpk) :: ptrd ! advective trend in one direction 188 188 !FTRANS ptrd :I :I :z 189 REAL(wp) , INTENT(out) :: ptrd(jpi,jpj,jpk ) ! advective trend in one direction189 REAL(wp) , INTENT(out) :: ptrd(jpi,jpj,jpkorig) ! advective trend in one direction 190 190 ! 191 191 INTEGER :: ji, jj, jk ! dummy loop indices … … 242 242 243 243 !FTRANS ptrd pu ptra :I :I :z 244 REAL(wp), INTENT(in) :: ptrd(jpi,jpj,jpk ) ! tracer trend or flux245 REAL(wp), INTENT(in), OPTIONAL :: pu(jpi,jpj,jpk ) ! velocity246 REAL(wp), INTENT(in), OPTIONAL :: ptra(jpi,jpj,jpk ) ! Tracer variable244 REAL(wp), INTENT(in) :: ptrd(jpi,jpj,jpkorig) ! tracer trend or flux 245 REAL(wp), INTENT(in), OPTIONAL :: pu(jpi,jpj,jpkorig) ! velocity 246 REAL(wp), INTENT(in), OPTIONAL :: ptra(jpi,jpj,jpkorig) ! Tracer variable 247 247 248 248 WRITE(*,*) 'trd_3d: You should not have seen this print! error ?', ptrd(1,1,1), ptra(1,1,1), pu(1,1,1), & -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90
r3211 r4409 216 216 217 217 !FTRANS putrdvor pvtrdvor :I :I :z 218 REAL(wp), INTENT(inout) :: putrdvor(jpi,jpj,jpk ) ! u vorticity trend219 REAL(wp), INTENT(inout) :: pvtrdvor(jpi,jpj,jpk )! v vorticity trend218 REAL(wp), INTENT(inout) :: putrdvor(jpi,jpj,jpkorig) ! u vorticity trend 219 REAL(wp), INTENT(inout) :: pvtrdvor(jpi,jpj,jpkorig) ! v vorticity trend 220 220 ! 221 221 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r4406 r4409 118 118 !! *** FUNCTION zdf_tke_alloc *** 119 119 !!---------------------------------------------------------------------- 120 ! Use jpkorig rather than jpk because this routine not called until first 121 ! time-step by which time jpk has been adjusted. 120 122 ALLOCATE( & 121 123 #if defined key_c1d 122 & e_dis(jpi,jpj,jpk ) , e_mix(jpi,jpj,jpk) , &123 & e_pdl(jpi,jpj,jpk ) , e_ric(jpi,jpj,jpk) , &124 #endif 125 & en (jpi,jpj,jpk ) , htau (jpi,jpj) , dissl(jpi,jpj,jpk) , STAT= zdf_tke_alloc )124 & e_dis(jpi,jpj,jpkorig) , e_mix(jpi,jpj,jpkorig) , & 125 & e_pdl(jpi,jpj,jpkorig) , e_ric(jpi,jpj,jpkorig) , & 126 #endif 127 & en (jpi,jpj,jpkorig) , htau (jpi,jpj) , dissl(jpi,jpj,jpkorig) , STAT= zdf_tke_alloc ) 126 128 ! 127 129 IF( lk_mpp ) CALL mpp_sum ( zdf_tke_alloc ) -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90
r3211 r4409 68 68 !! *** FUNCTION zdf_tmx_alloc *** 69 69 !!---------------------------------------------------------------------- 70 ALLOCATE(en_tmx(jpi,jpj), mask_itf(jpi,jpj), az_tmx(jpi,jpj,jpk), STAT=zdf_tmx_alloc ) 70 ALLOCATE(en_tmx(jpi,jpj), mask_itf(jpi,jpj), az_tmx(jpi,jpj,jpkorig), & 71 STAT=zdf_tmx_alloc ) 71 72 ! 72 73 IF( lk_mpp ) CALL mpp_sum ( zdf_tmx_alloc ) … … 262 263 ! REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pav ! Tidal mixing coef. 263 264 !FTRANS pav :I :I :z 264 REAL(wp), INTENT(inout) :: pav(jpi,jpj,jpk ) ! Tidal mixing coef.265 REAL(wp), INTENT(inout) :: pav(jpi,jpj,jpkorig) ! Tidal mixing coef. 265 266 !! 266 267 INTEGER :: ji, jj, jk ! dummy loop indices -
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r3849 r4409 241 241 jpk = jpkdta ! third dim 242 242 jpkm1 = jpk-1 ! inner domain indices 243 jpkorig = jpk ! Copy of jpk that is NOT modified 244 jpkf = jpk ! Max depth of this sub-domain. Initially set to jpk here 245 ! but altered later in domzgr 243 246 ENDIF 244 247 … … 263 266 #if defined key_mpp_rkpart 264 267 ELSE 265 CALL ctl_stop( 'STOP', 'nemo_init : invalid inputs in namelist - cannot specify jpn{i,j}>0 when using recursive k-section paritioning!' ) 268 CALL ctl_stop( 'STOP', & 269 'nemo_init : invalid inputs in namelist - cannot specify jpn{i,j}>0 & 270 & when using recursive k-section paritioning!' ) 266 271 #endif 267 272 END IF … … 593 598 SUBROUTINE nemo_recursive_partition( num_pes ) 594 599 USE in_out_manager, ONLY: numnam 595 USE dom_oce, ONLY: ln_zco , ntopo600 USE dom_oce, ONLY: ln_zco 596 601 USE dom_oce, ONLY: gdepw_0, gdept_0, e3w_0, e3t_0, & 597 602 mig, mjg, mi0, mi1, mj0, mj1, mbathy, bathy … … 626 631 INTEGER :: inum ! temporary logical unit 627 632 INTEGER :: ii,jj,iproc ! Loop index 628 INTEGER :: jparray(2) ! Small array for gathering629 633 CHARACTER(LEN=8) :: lstr ! Local string for reading env. var. 630 634 INTEGER :: lztrim ! Local int for " " " … … 653 657 STATUS=ierr) 654 658 IF( ierr == 0)THEN 655 READ(lstr,FMT="(I )",IOSTAT=ierr) lztrim659 READ(lstr,FMT="(I10)",IOSTAT=ierr) lztrim 656 660 IF(ierr == 0)THEN 657 661 IF (lztrim == 0) msgtrim_z = .FALSE.
Note: See TracChangeset
for help on using the changeset viewer.