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 181 for trunk/NEMO/OPA_SRC/DOM/domain.F90 – NEMO

Ignore:
Timestamp:
2004-11-05T15:08:18+01:00 (19 years ago)
Author:
opalod
Message:

CT : UPDATE126 : improve MPI send possiblities with mpi_bsen and mpi_isend; update the search of extremum of scale factors in mpp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DOM/domain.F90

    r112 r181  
    344344      IF(lwp)WRITE(numout,*) 'dom_ctl : extrema of the masked scale factors' 
    345345      IF(lwp)WRITE(numout,*) '~~~~~~~' 
    346       ze1min = MINVAL( e1t(:,:), mask = tmask(:,:,1) == 1.e0 )     
    347       ze2min = MINVAL( e2t(:,:), mask = tmask(:,:,1) == 1.e0 )     
    348       ze1max = MAXVAL( e1t(:,:), mask = tmask(:,:,1) == 1.e0 )     
    349       ze2max = MAXVAL( e2t(:,:), mask = tmask(:,:,1) == 1.e0 )     
    350  
    351       IF( lk_mpp )   CALL mpp_min( ze1min )   ! min over the global domain 
    352       IF( lk_mpp )   CALL mpp_min( ze2min ) 
    353       IF( lk_mpp )   CALL mpp_max( ze1max )   ! max over the global domain 
    354       IF( lk_mpp )   CALL mpp_max( ze2max ) 
    355  
    356       iloc  = MINLOC( e1t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
    357       iimi1 = iloc(1) + nimpp - 1 
    358       ijmi1 = iloc(2) + njmpp - 1 
    359       iloc  = MINLOC( e2t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
    360       iimi2 = iloc(1) + nimpp - 1 
    361       ijmi2 = iloc(2) + njmpp - 1 
    362       iloc  = MAXLOC( e1t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
    363       iima1 = iloc(1) + nimpp - 1 
    364       ijma1 = iloc(2) + njmpp - 1 
    365       iloc  = MAXLOC( e2t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
    366       iima2 = iloc(1) + nimpp - 1 
    367       ijma2 = iloc(2) + njmpp - 1 
    368  
    369       IF( lk_mpp ) THEN 
    370 !CT bug         CALL mpp_isl( iimi1 ) 
    371 !CT bug         CALL mpp_isl( ijmi1 ) 
    372 !CT bug         CALL mpp_isl( iimi2 ) 
    373 !CT bug         CALL mpp_isl( ijmi2 ) 
    374 !CT bug         CALL mpp_isl( iima1 ) 
    375 !CT bug         CALL mpp_isl( ijma1 ) 
    376 !CT bug         CALL mpp_isl( iima2 ) 
    377 !CT bug         CALL mpp_isl( ijma2 ) 
    378       ENDIF 
    379  
    380       IF(lwp) THEN 
    381          IF(lk_mpp) THEN 
    382             WRITE(numout,cform_war) 
    383             WRITE(numout,*)'      Min(Max) of e1t, e2t are those of the first proc only' 
    384             WRITE(numout,*) 
    385          END IF 
    386          WRITE(numout,"(14x,'e1t maxi: ',1f10.2,' at i = ',i3,' j= ',i3)") ze1max, iima1, ijma1 
    387          WRITE(numout,"(14x,'e1t mini: ',1f10.2,' at i = ',i3,' j= ',i3)") ze1min, iimi1, ijmi1 
    388          WRITE(numout,"(14x,'e2t maxi: ',1f10.2,' at i = ',i3,' j= ',i3)") ze2max, iima2, ijma2 
    389          WRITE(numout,"(14x,'e2t mini: ',1f10.2,' at i = ',i3,' j= ',i3)") ze2min, iimi2, ijmi2 
     346 
     347      IF (lk_mpp) THEN 
     348         CALL mpp_minloc( e1t(:,:), tmask(:,:,1), ze1min, iimi1,ijmi1 ) 
     349         CALL mpp_minloc( e2t(:,:), tmask(:,:,1), ze2min, iimi2,ijmi2 ) 
     350         CALL mpp_maxloc( e1t(:,:), tmask(:,:,1), ze1max, iima1,ijma1 ) 
     351         CALL mpp_maxloc( e2t(:,:), tmask(:,:,1), ze2max, iima2,ijma2 ) 
     352      ELSE 
     353         ze1min = MINVAL( e1t(:,:), mask = tmask(:,:,1) == 1.e0 )     
     354         ze2min = MINVAL( e2t(:,:), mask = tmask(:,:,1) == 1.e0 )     
     355         ze1max = MAXVAL( e1t(:,:), mask = tmask(:,:,1) == 1.e0 )     
     356         ze2max = MAXVAL( e2t(:,:), mask = tmask(:,:,1) == 1.e0 )     
     357 
     358         iloc  = MINLOC( e1t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
     359         iimi1 = iloc(1) + nimpp - 1 
     360         ijmi1 = iloc(2) + njmpp - 1 
     361         iloc  = MINLOC( e2t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
     362         iimi2 = iloc(1) + nimpp - 1 
     363         ijmi2 = iloc(2) + njmpp - 1 
     364         iloc  = MAXLOC( e1t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
     365         iima1 = iloc(1) + nimpp - 1 
     366         ijma1 = iloc(2) + njmpp - 1 
     367         iloc  = MAXLOC( e2t(:,:), mask = tmask(:,:,1) == 1.e0 ) 
     368         iima2 = iloc(1) + nimpp - 1 
     369         ijma2 = iloc(2) + njmpp - 1 
     370      ENDIF 
     371 
     372      IF(lwp) THEN 
     373         WRITE(numout,"(14x,'e1t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1max, iima1, ijma1 
     374         WRITE(numout,"(14x,'e1t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1min, iimi1, ijmi1 
     375         WRITE(numout,"(14x,'e2t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2max, iima2, ijma2 
     376         WRITE(numout,"(14x,'e2t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2min, iimi2, ijmi2 
    390377      ENDIF 
    391378 
Note: See TracChangeset for help on using the changeset viewer.