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 15588 for NEMO/branches/UKMO/r14075_maxval_cce – NEMO

Ignore:
Timestamp:
2021-12-09T13:30:34+01:00 (2 years ago)
Author:
jcastill
Message:

Changes to make the code work with cce 8.7.7

Location:
NEMO/branches/UKMO/r14075_maxval_cce/src/OCE
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/r14075_maxval_cce/src/OCE/DOM/domain.F90

    r14075 r15588  
    485485         CALL mpp_maxloc( 'domain', e2t(:,:), tmask_i(:,:), ze2max, ima2 ) 
    486486      ELSE 
    487          ze1min = MINVAL( e1t(:,:), mask = tmask_i(:,:) == 1._wp )     
    488          ze2min = MINVAL( e2t(:,:), mask = tmask_i(:,:) == 1._wp )     
    489          ze1max = MAXVAL( e1t(:,:), mask = tmask_i(:,:) == 1._wp )     
    490          ze2max = MAXVAL( e2t(:,:), mask = tmask_i(:,:) == 1._wp )     
    491          ! 
    492          iloc  = MINLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 
     487         ze1max = MAXVAL( e1t(:,:)*tmask_i(:,:) )     
     488         ze2max = MAXVAL( e2t(:,:)*tmask_i(:,:) )     
     489         ze1min = ze1max - MAXVAL( (ze1max-e1t(:,:))*tmask_i(:,:) )     
     490         ze2min = ze2max - MAXVAL( (ze2max-e2t(:,:))*tmask_i(:,:) )     
     491         ! 
     492         iloc  = MAXLOC( (ze1max-e1t(:,:))*tmask_i(:,:) ) 
    493493         imi1(1) = iloc(1) + nimpp - 1 
    494494         imi1(2) = iloc(2) + njmpp - 1 
    495          iloc  = MINLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 
     495         iloc  = MAXLOC( (ze2max-e2t(:,:))*tmask_i(:,:) ) 
    496496         imi2(1) = iloc(1) + nimpp - 1 
    497497         imi2(2) = iloc(2) + njmpp - 1 
    498          iloc  = MAXLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 
     498         iloc  = MAXLOC( e1t(:,:)*tmask_i(:,:) ) 
    499499         ima1(1) = iloc(1) + nimpp - 1 
    500500         ima1(2) = iloc(2) + njmpp - 1 
    501          iloc  = MAXLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 
     501         iloc  = MAXLOC( e2t(:,:)*tmask_i(:,:) ) 
    502502         ima2(1) = iloc(1) + nimpp - 1 
    503503         ima2(2) = iloc(2) + njmpp - 1 
  • NEMO/branches/UKMO/r14075_maxval_cce/src/OCE/DOM/domngb.F90

    r14075 r15588  
    7070         kii = iloc(1) ; kjj = iloc(2) 
    7171      ELSE 
    72          iloc(:) = MINLOC( zdist(:,:), mask = zmask(:,:) == 1.e0 ) 
     72         zmini = MAXVAL( zdist(:,:)*zmask(:,:) ) 
     73         iloc(:) = MAXLOC( (zmini-zdist(:,:))*zmask(:,:) ) 
    7374         kii = iloc(1) + nimpp - 1 
    7475         kjj = iloc(2) + njmpp - 1 
  • NEMO/branches/UKMO/r14075_maxval_cce/src/OCE/OBS/obs_averg_h2d.F90

    r14075 r15588  
    612612         ENDIF 
    613613 
    614          ze1min = MINVAL( e1t(:,:), mask = pmask(:,:) == 1._wp ) 
    615          ze2min = MINVAL( e2t(:,:), mask = pmask(:,:) == 1._wp ) 
     614         ze1min = MAXVAL( e1t(:,:)*pmask(:,:) ) 
     615         ze2min = MAXVAL( e2t(:,:)*pmask(:,:) ) 
     616 
     617         ze1min = ze1min - MAXVAL( (ze1min-e1t(:,:))*pmask(:,:) ) 
     618         ze2min = ze2min - MAXVAL( (ze2min-e2t(:,:))*pmask(:,:) ) 
    616619          
    617620         IF(lk_mpp) THEN 
  • NEMO/branches/UKMO/r14075_maxval_cce/src/OCE/stpctl.F90

    r14075 r15588  
    129129      llmsk(:,:,:) = tmask(:,:,:) == 1._wp 
    130130      IF( COUNT( llmsk(:,:,:) ) > 0 ) THEN   ! avoid huge values sent back for land processors...       
    131          zmax(3) = MAXVAL( -tsn(:,:,:,jp_sal) , mask = llmsk )   ! minus salinity max 
    132          zmax(4) = MAXVAL(  tsn(:,:,:,jp_sal) , mask = llmsk )   !      salinity max 
     131         zmax(4) = MAXVAL(  tsn(:,:,:,jp_sal)*tmask )            !      salinity max 
     132         zmax(3) = MAXVAL( (zmax(4)-tsn(:,:,:,jp_sal))*tmask ) - zmax(4)          ! minus salinity max 
    133133         IF( ll_colruns .OR. jpnij == 1 ) THEN     ! following variables are used only in the netcdf file 
    134             zmax(5) = MAXVAL( -tsn(:,:,:,jp_tem) , mask = llmsk )   ! minus temperature max 
    135             zmax(6) = MAXVAL(  tsn(:,:,:,jp_tem) , mask = llmsk )   !      temperature max 
     134            zmax(6) = MAXVAL(  tsn(:,:,:,jp_tem)*tmask )         !      temperature max 
     135            zmax(5) = zmax(6) - MAXVAL( (zmax(6)-tsn(:,:,:,jp_tem))*tmask )        ! minus temperature max 
    136136            IF( ln_zad_Aimp ) THEN 
    137                zmax(9) = MAXVAL(   Cu_adv(:,:,:)   , mask = llmsk ) ! partitioning coeff. max 
     137               zmax(9) = MAXVAL(   Cu_adv(:,:,:)*tmask )        ! partitioning coeff. max 
    138138               llmsk(:,:,:) = wmask(:,:,:) == 1._wp 
    139139               IF( COUNT( llmsk(:,:,:) ) > 0 ) THEN   ! avoid huge values sent back for land processors... 
    140                   zmax(8) = MAXVAL(  ABS( wi(:,:,:) ) , mask = wmask(:,:,:) == 1._wp ) ! implicit vertical vel. max 
     140                  zmax(8) = MAXVAL( ABS( wi(:,:,:) )*wmask(:,:,:) ) ! implicit vertical vel. max 
    141141               ENDIF 
    142142            ENDIF 
     
    193193            ih(1:2)= MAXLOC( ABS( sshn(:,:)   )                              ) + (/ nimpp - 1, njmpp - 1    /)   ;   ih(3) = 0 
    194194            iu(:)  = MAXLOC( ABS( un  (:,:,:) )                              ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    195             is1(:) = MINLOC( tsn(:,:,:,jp_sal), mask = tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    196             is2(:) = MAXLOC( tsn(:,:,:,jp_sal), mask = tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
     195            is1(:) = MAXLOC( (zmax(4)-tsn(:,:,:,jp_sal))*tmask(:,:,:) ) + (/ nimpp - 1, njmpp - 1, 0 /) 
     196            is2(:) = MAXLOC( tsn(:,:,:,jp_sal)*tmask(:,:,:) ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    197197            iareamin(:) = narea   ;   iareamax(:) = narea   ;   iareasum(:) = 1         ! this is local information 
    198198         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.