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 3289 for branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC – NEMO

Ignore:
Timestamp:
2012-01-27T15:37:34+01:00 (12 years ago)
Author:
rblod
Message:

Fix agrif for 3_4_beta see ticket #921

Location:
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/lib_fortran.F90

    r2528 r3289  
    4747 
    4848#if ! defined key_mpp_rep 
    49    FUNCTION glob_sum_2d( ptab ) RESULT( glob_sum ) 
     49   FUNCTION glob_sum_2d( ptab )  
    5050      !!----------------------------------------------------------------------- 
    5151      !!                  ***  FUNCTION  glob_sum_2D  *** 
     
    5353      !! ** Purpose : perform a masked sum on the inner global domain of a 2D array 
    5454      !!----------------------------------------------------------------------- 
    55       REAL(wp), INTENT(in), DIMENSION(:,:) ::   ptab       ! input 2D array 
    56       REAL(wp)                             ::   glob_sum   ! global masked sum 
    57       !!----------------------------------------------------------------------- 
    58       ! 
    59       glob_sum = SUM( ptab(:,:)*tmask_i(:,:) ) 
    60       IF( lk_mpp )   CALL mpp_sum( glob_sum ) 
     55      REAL(wp), INTENT(in), DIMENSION(:,:) ::   ptab          ! input 2D array 
     56      REAL(wp)                             ::   glob_sum_2d   ! global masked sum 
     57      !!----------------------------------------------------------------------- 
     58      ! 
     59      glob_sum_2d = SUM( ptab(:,:)*tmask_i(:,:) ) 
     60      IF( lk_mpp )   CALL mpp_sum( glob_sum_2d ) 
    6161      ! 
    6262   END FUNCTION glob_sum_2d 
    6363    
    6464    
    65    FUNCTION glob_sum_3d( ptab ) RESULT( glob_sum ) 
     65   FUNCTION glob_sum_3d( ptab )  
    6666      !!----------------------------------------------------------------------- 
    6767      !!                  ***  FUNCTION  glob_sum_3D  *** 
     
    6969      !! ** Purpose : perform a masked sum on the inner global domain of a 3D array 
    7070      !!----------------------------------------------------------------------- 
    71       REAL(wp), INTENT(in), DIMENSION(:,:,:) ::   ptab       ! input 3D array 
    72       REAL(wp)                               ::   glob_sum   ! global masked sum 
     71      REAL(wp), INTENT(in), DIMENSION(:,:,:) ::   ptab          ! input 3D array 
     72      REAL(wp)                               ::   glob_sum_3d   ! global masked sum 
    7373      !! 
    7474      INTEGER :: jk 
    7575      !!----------------------------------------------------------------------- 
    7676      ! 
    77       glob_sum = 0.e0 
     77      glob_sum_3d = 0.e0 
    7878      DO jk = 1, jpk 
    79          glob_sum = glob_sum + SUM( ptab(:,:,jk)*tmask_i(:,:) ) 
    80       END DO 
    81       IF( lk_mpp )   CALL mpp_sum( glob_sum ) 
     79         glob_sum_3d = glob_sum_3d + SUM( ptab(:,:,jk)*tmask_i(:,:) ) 
     80      END DO 
     81      IF( lk_mpp )   CALL mpp_sum( glob_sum_3d ) 
    8282      ! 
    8383   END FUNCTION glob_sum_3d 
    8484 
    8585 
    86    FUNCTION glob_sum_2d_a( ptab1, ptab2 ) RESULT( glob_sum ) 
     86   FUNCTION glob_sum_2d_a( ptab1, ptab2 )  
    8787      !!----------------------------------------------------------------------- 
    8888      !!                  ***  FUNCTION  glob_sum_2D _a *** 
     
    9090      !! ** Purpose : perform a masked sum on the inner global domain of two 2D array 
    9191      !!----------------------------------------------------------------------- 
    92       REAL(wp), INTENT(in), DIMENSION(:,:) ::   ptab1, ptab2   ! input 2D array 
    93       REAL(wp)            , DIMENSION(2)   ::   glob_sum       ! global masked sum 
     92      REAL(wp), INTENT(in), DIMENSION(:,:) ::   ptab1, ptab2    ! input 2D array 
     93      REAL(wp)            , DIMENSION(2)   ::   glob_sum_2d_a   ! global masked sum 
    9494      !!----------------------------------------------------------------------- 
    9595      !              
    96       glob_sum(1) = SUM( ptab1(:,:)*tmask_i(:,:) ) 
    97       glob_sum(2) = SUM( ptab2(:,:)*tmask_i(:,:) ) 
    98       IF( lk_mpp )   CALL mpp_sum( glob_sum, 2 ) 
     96      glob_sum_2d_a(1) = SUM( ptab1(:,:)*tmask_i(:,:) ) 
     97      glob_sum_2d_a(2) = SUM( ptab2(:,:)*tmask_i(:,:) ) 
     98      IF( lk_mpp )   CALL mpp_sum( glob_sum_2d_a, 2 ) 
    9999      ! 
    100100   END FUNCTION glob_sum_2d_a 
    101101  
    102102  
    103    FUNCTION glob_sum_3d_a( ptab1, ptab2 ) RESULT( glob_sum ) 
     103   FUNCTION glob_sum_3d_a( ptab1, ptab2 )  
    104104      !!----------------------------------------------------------------------- 
    105105      !!                  ***  FUNCTION  glob_sum_3D_a *** 
     
    107107      !! ** Purpose : perform a masked sum on the inner global domain of two 3D array 
    108108      !!----------------------------------------------------------------------- 
    109       REAL(wp), INTENT(in), DIMENSION(:,:,:) ::   ptab1, ptab2   ! input 3D array 
    110       REAL(wp)            , DIMENSION(2)     ::   glob_sum       ! global masked sum 
     109      REAL(wp), INTENT(in), DIMENSION(:,:,:) ::   ptab1, ptab2    ! input 3D array 
     110      REAL(wp)            , DIMENSION(2)     ::   glob_sum_3d_a   ! global masked sum 
    111111      !! 
    112112      INTEGER :: jk 
    113113      !!----------------------------------------------------------------------- 
    114114      ! 
    115       glob_sum(:) = 0.e0 
     115      glob_sum_3d_a(:) = 0.e0 
    116116      DO jk = 1, jpk 
    117          glob_sum(1) = glob_sum(1) + SUM( ptab1(:,:,jk)*tmask_i(:,:) ) 
    118          glob_sum(2) = glob_sum(2) + SUM( ptab2(:,:,jk)*tmask_i(:,:) ) 
    119       END DO 
    120       IF( lk_mpp )   CALL mpp_sum( glob_sum, 2 ) 
     117         glob_sum_3d_a(1) = glob_sum_3d_a(1) + SUM( ptab1(:,:,jk)*tmask_i(:,:) ) 
     118         glob_sum_3d_a(2) = glob_sum_3d_a(2) + SUM( ptab2(:,:,jk)*tmask_i(:,:) ) 
     119      END DO 
     120      IF( lk_mpp )   CALL mpp_sum( glob_sum_3d_a, 2 ) 
    121121      ! 
    122122   END FUNCTION glob_sum_3d_a 
     
    127127   !!---------------------------------------------------------------------- 
    128128    
    129    FUNCTION glob_sum_2d( ptab ) RESULT( glob_sum ) 
     129   FUNCTION glob_sum_2d( ptab )  
    130130      !!---------------------------------------------------------------------- 
    131131      !!                  ***  FUNCTION  glob_sum_2d *** 
     
    134134      !!---------------------------------------------------------------------- 
    135135      REAL(wp), INTENT(in), DIMENSION(jpi,jpj) ::   ptab 
    136       REAL(wp)                                 ::   glob_sum   ! global masked sum 
     136      REAL(wp)                                 ::   glob_sum_2d   ! global masked sum 
    137137      !! 
    138138      COMPLEX(wp)::   ctmp 
     
    150150      END DO 
    151151      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
    152       glob_sum = REAL(ctmp,wp) 
     152      glob_sum_2d = REAL(ctmp,wp) 
    153153      ! 
    154154   END FUNCTION glob_sum_2d    
    155155 
    156156 
    157    FUNCTION glob_sum_3d( ptab ) RESULT( glob_sum ) 
     157   FUNCTION glob_sum_3d( ptab )  
    158158      !!---------------------------------------------------------------------- 
    159159      !!                  ***  FUNCTION  glob_sum_3d *** 
     
    162162      !!---------------------------------------------------------------------- 
    163163      REAL(wp), INTENT(in), DIMENSION(jpi,jpj,jpk) ::   ptab 
    164       REAL(wp)                                     ::   glob_sum   ! global masked sum 
     164      REAL(wp)                                     ::   glob_sum_3d   ! global masked sum 
    165165      !! 
    166166      COMPLEX(wp)::   ctmp 
     
    180180      END DO 
    181181      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
    182       glob_sum = REAL(ctmp,wp) 
     182      glob_sum_3d = REAL(ctmp,wp) 
    183183      ! 
    184184   END FUNCTION glob_sum_3d    
    185185 
    186186 
    187    FUNCTION glob_sum_2d_a( ptab1, ptab2 ) RESULT( glob_sum ) 
     187   FUNCTION glob_sum_2d_a( ptab1, ptab2 )  
    188188      !!---------------------------------------------------------------------- 
    189189      !!                  ***  FUNCTION  glob_sum_2d_a *** 
     
    192192      !!---------------------------------------------------------------------- 
    193193      REAL(wp), INTENT(in), DIMENSION(jpi,jpj) ::   ptab1, ptab2 
    194       REAL(wp)                                 ::   glob_sum   ! global masked sum 
     194      REAL(wp)                                 ::   glob_sum_2d_a   ! global masked sum 
    195195      !! 
    196196      COMPLEX(wp)::   ctmp 
     
    210210      END DO 
    211211      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
    212       glob_sum = REAL(ctmp,wp) 
     212      glob_sum_2d_a = REAL(ctmp,wp) 
    213213      ! 
    214214   END FUNCTION glob_sum_2d_a    
    215215 
    216216 
    217    FUNCTION glob_sum_3d_a( ptab1, ptab2 ) RESULT( glob_sum ) 
     217   FUNCTION glob_sum_3d_a( ptab1, ptab2 )  
    218218      !!---------------------------------------------------------------------- 
    219219      !!                  ***  FUNCTION  glob_sum_3d_a *** 
     
    222222      !!---------------------------------------------------------------------- 
    223223      REAL(wp), INTENT(in), DIMENSION(jpi,jpj,jpk) ::   ptab1, ptab2 
    224       REAL(wp)                                     ::   glob_sum   ! global masked sum 
     224      REAL(wp)                                     ::   glob_sum_3d_a   ! global masked sum 
    225225      !! 
    226226      COMPLEX(wp)::   ctmp 
     
    242242      END DO 
    243243      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
    244       glob_sum = REAL(ctmp,wp) 
     244      glob_sum_3d_a = REAL(ctmp,wp) 
    245245      ! 
    246246   END FUNCTION glob_sum_3d_a    
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r3288 r3289  
    173173      ENDIF 
    174174      ! 
     175#if defined key_agrif 
     176      CALL Agrif_ParentGrid_To_ChildGrid() 
     177      IF( lk_diaobs ) CALL dia_obs_wri 
     178      IF( nn_timing == 1 )   CALL timing_finalize 
     179      CALL Agrif_ChildGrid_To_ParentGrid() 
     180#endif 
    175181      IF( nn_timing == 1 )   CALL timing_finalize 
    176182      ! 
Note: See TracChangeset for help on using the changeset viewer.