New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12065 for NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/DIA/diacfl.F90 – NEMO

Ignore:
Timestamp:
2019-12-05T12:06:36+01:00 (5 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12055 (ticket #2194)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/DIA/diacfl.F90

    r10425 r12065  
    1717   USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    1818   USE in_out_manager  ! I/O manager 
     19   USE iom             !  
    1920   USE timing          ! Performance output 
    2021 
     
    2728   INTEGER, DIMENSION(3) ::   nCu_loc, nCv_loc, nCw_loc   ! U, V, and W run max locations in the global domain 
    2829   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         ! workspace 
    33 !!gm end 
    3430 
    3531   PUBLIC   dia_cfl       ! routine called by step.F90 
     
    5450      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    5551      ! 
    56       INTEGER                ::   ji, jj, jk                            ! dummy loop indices 
    57       REAL(wp)               ::   z2dt, zCu_max, zCv_max, zCw_max       ! local scalars 
    58       INTEGER , DIMENSION(3) ::   iloc_u , iloc_v , iloc_w , iloc       ! workspace 
    59 !!gm this does not work      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zCu_cfl, zCv_cfl, zCw_cfl         ! workspace 
     52      INTEGER                          ::   ji, jj, jk                       ! dummy loop indices 
     53      REAL(wp)                         ::   z2dt, zCu_max, zCv_max, zCw_max  ! local scalars 
     54      INTEGER , DIMENSION(3)           ::   iloc_u , iloc_v , iloc_w , iloc  ! workspace 
     55      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zCu_cfl, zCv_cfl, zCw_cfl        ! workspace 
    6056      !!---------------------------------------------------------------------- 
    6157      ! 
     
    7066      DO jk = 1, jpk       ! calculate Courant numbers 
    7167         DO jj = 1, jpj 
    72             DO ji = 1, fs_jpim1   ! vector opt. 
     68            DO ji = 1, jpi 
    7369               zCu_cfl(ji,jj,jk) = ABS( un(ji,jj,jk) ) * z2dt / e1u  (ji,jj)      ! for i-direction 
    7470               zCv_cfl(ji,jj,jk) = ABS( vn(ji,jj,jk) ) * z2dt / e2v  (ji,jj)      ! for j-direction 
     
    7874      END DO 
    7975      ! 
     76      ! write outputs 
     77      IF( iom_use('cfl_cu') )   CALL iom_put( 'cfl_cu', MAXVAL( zCu_cfl, dim=3 ) ) 
     78      IF( iom_use('cfl_cv') )   CALL iom_put( 'cfl_cv', MAXVAL( zCv_cfl, dim=3 ) ) 
     79      IF( iom_use('cfl_cw') )   CALL iom_put( 'cfl_cw', MAXVAL( zCw_cfl, dim=3 ) ) 
     80 
    8081      !                    ! calculate maximum values and locations 
    8182      IF( lk_mpp ) THEN 
     
    105106      !                    ! write out to file 
    106107      IF( lwp ) THEN 
    107          WRITE(numcfl,FMT='(2x,i4,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) 
     108         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) 
    108109         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) 
    109110         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) 
     
    166167      rCw_max = 0._wp 
    167168      ! 
    168 !!gm required to work 
    169       ALLOCATE ( zCu_cfl(jpi,jpj,jpk), zCv_cfl(jpi,jpj,jpk), zCw_cfl(jpi,jpj,jpk) ) 
    170 !!gm end 
    171       !       
    172169   END SUBROUTINE dia_cfl_init 
    173170 
Note: See TracChangeset for help on using the changeset viewer.