Changeset 11822 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DIA/diacfl.F90
- Timestamp:
- 2019-10-29T11:41:36+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DIA/diacfl.F90
r10965 r11822 17 17 USE lbclnk ! ocean lateral boundary condition (or mpp link) 18 18 USE in_out_manager ! I/O manager 19 USE iom ! 19 20 USE timing ! Performance output 20 21 … … 27 28 INTEGER, DIMENSION(3) :: nCu_loc, nCv_loc, nCw_loc ! U, V, and W run max locations in the global domain 28 29 REAL(wp) :: rCu_max, rCv_max, rCw_max ! associated run max Courant number 29 30 !!gm CAUTION: need to declare these arrays here, otherwise the calculation fails in multi-proc !31 !!gm I don't understand why.32 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zCu_cfl, zCv_cfl, zCw_cfl ! workspace33 !!gm end34 30 35 31 PUBLIC dia_cfl ! routine called by step.F90 … … 55 51 INTEGER, INTENT(in) :: Kmm ! ocean time level index 56 52 ! 57 INTEGER :: ji, jj, jk! dummy loop indices58 REAL(wp) :: z2dt, zCu_max, zCv_max, zCw_max! local scalars59 INTEGER , DIMENSION(3) :: iloc_u , iloc_v , iloc_w , iloc! workspace60 !!gm this does not work REAL(wp), DIMENSION(jpi,jpj,jpk) :: zCu_cfl, zCv_cfl, zCw_cfl! workspace53 INTEGER :: ji, jj, jk ! dummy loop indices 54 REAL(wp) :: z2dt, zCu_max, zCv_max, zCw_max ! local scalars 55 INTEGER , DIMENSION(3) :: iloc_u , iloc_v , iloc_w , iloc ! workspace 56 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zCu_cfl, zCv_cfl, zCw_cfl ! workspace 61 57 !!---------------------------------------------------------------------- 62 58 ! … … 71 67 DO jk = 1, jpk ! calculate Courant numbers 72 68 DO jj = 1, jpj 73 DO ji = 1, fs_jpim1 ! vector opt.69 DO ji = 1, jpi 74 70 zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * z2dt / e1u (ji,jj) ! for i-direction 75 71 zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * z2dt / e2v (ji,jj) ! for j-direction … … 79 75 END DO 80 76 ! 77 ! write outputs 78 IF( iom_use('cfl_cu') ) CALL iom_put( 'cfl_cu', MAXVAL( zCu_cfl, dim=3 ) ) 79 IF( iom_use('cfl_cv') ) CALL iom_put( 'cfl_cv', MAXVAL( zCv_cfl, dim=3 ) ) 80 IF( iom_use('cfl_cw') ) CALL iom_put( 'cfl_cw', MAXVAL( zCw_cfl, dim=3 ) ) 81 81 82 ! ! calculate maximum values and locations 82 83 IF( lk_mpp ) THEN … … 106 107 ! ! write out to file 107 108 IF( lwp ) THEN 108 WRITE(numcfl,FMT='(2x,i 4,5x,a6,4x,f7.4,1x,i4,1x,i4,1x,i4)') kt, 'Max Cu', zCu_max, iloc_u(1), iloc_u(2), iloc_u(3)109 WRITE(numcfl,FMT='(2x,i6,3x,a6,4x,f7.4,1x,i4,1x,i4,1x,i4)') kt, 'Max Cu', zCu_max, iloc_u(1), iloc_u(2), iloc_u(3) 109 110 WRITE(numcfl,FMT='(11x, a6,4x,f7.4,1x,i4,1x,i4,1x,i4)') 'Max Cv', zCv_max, iloc_v(1), iloc_v(2), iloc_v(3) 110 111 WRITE(numcfl,FMT='(11x, a6,4x,f7.4,1x,i4,1x,i4,1x,i4)') 'Max Cw', zCw_max, iloc_w(1), iloc_w(2), iloc_w(3) … … 167 168 rCw_max = 0._wp 168 169 ! 169 !!gm required to work170 ALLOCATE ( zCu_cfl(jpi,jpj,jpk), zCv_cfl(jpi,jpj,jpk), zCw_cfl(jpi,jpj,jpk) )171 !!gm end172 !173 170 END SUBROUTINE dia_cfl_init 174 171
Note: See TracChangeset
for help on using the changeset viewer.