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 2674 for branches – NEMO

Changeset 2674 for branches


Ignore:
Timestamp:
2011-03-08T18:30:16+01:00 (13 years ago)
Author:
rblod
Message:

First set of changes in OPA_SRC to ensure AGRIF compatibility

Location:
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r2636 r2674  
    2828   USE in_out_manager ! I/O manager 
    2929   USE lib_mpp        ! MPP library 
     30   USE solver          ! solver initialization 
    3031 
    3132   IMPLICIT NONE 
     
    204205      ENDIF 
    205206 
     207      IF( nspg == 2 .OR. nspg == -1 ) CALL solver_init( nit000 )   ! Elliptic solver initialisation 
     208 
    206209      !                        ! Control of timestep choice 
    207210      IF( lk_dynspg_ts .OR. lk_dynspg_exp ) THEN 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r2618 r2674  
    3131   USE dynadv          ! advection  
    3232   USE solmat          ! matrix construction for elliptic solvers 
    33    USE solver          ! solver initialization 
    3433   USE solpcg          ! preconditionned conjugate gradient solver 
    3534   USE solsor          ! Successive Over-relaxation solver 
     
    124123         spgu(:,:) = 0.e0                     ! surface pressure gradient (i-direction) 
    125124         spgv(:,:) = 0.e0                     ! surface pressure gradient (j-direction) 
    126          CALL solver_init( nit000 )           ! Elliptic solver initialisation 
    127125 
    128126         ! read filtered free surface arrays in restart file 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90

    r2636 r2674  
    4141   REAL(wp) ::   r1_grau              ! = 1.e0 / (grav * rau0) 
    4242    
    43    TYPE(FLD), ALLOCATABLE, SAVE, DIMENSION(:) ::   sf_apr   ! structure of input fields (file informations, fields read) 
     43   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_apr   ! structure of input fields (file informations, fields read) 
    4444 
    4545   !! * Substitutions 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r2636 r2674  
    5252   INTEGER , PARAMETER ::   jp_tair = 6           ! index of 10m air temperature             (Kelvin) 
    5353   INTEGER , PARAMETER ::   jp_prec = 7           ! index of total precipitation (rain+snow) (Kg/m2/s) 
    54    TYPE(FLD),ALLOCATABLE,SAVE,DIMENSION(:) :: sf  ! structure of input fields (file informations, fields read) 
     54   TYPE(FLD),ALLOCATABLE,DIMENSION(:) :: sf  ! structure of input fields (file informations, fields read) 
    5555 
    5656   INTEGER, PARAMETER  ::   jpintsr = 24          ! number of time step between sunrise and sunset 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r2668 r2674  
    113113      CALL nemo_init               !==  Initialisations  ==! 
    114114      !                            !-----------------------! 
    115  
     115#if defined key_agrif 
     116      CALL Agrif_Declare_Variables()      ! AGRIF: set the meshes 
     117#endif 
    116118      ! check that all process are still there... If some process have an error, 
    117119      ! they will never enter in step and other processes will wait until the end of the cpu time! 
     
    226228      ! then we calculate them here now that we have our communicator size 
    227229      IF( (jpni < 1) .OR. (jpnj < 1) )THEN 
    228 #if   defined key_mpp_mpi   ||   defined key_mpp_shmem 
    229          CALL nemo_partition(mppsize) 
     230#if   defined key_mpp_mpi 
     231         IF( Agrif_Root() ) CALL nemo_partition(mppsize) 
    230232#else 
    231233         jpni = 1 
     
    238240      ! This used to be done in par_oce.F90 when they were parameters rather 
    239241      ! than variables 
    240       jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci !: first  dim. 
    241       jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj !: second dim. 
    242       jpk = jpkdta                                           !: third dim 
    243       jpim1 = jpi-1                                          !: inner domain indices 
    244       jpjm1 = jpj-1                                          !:   "           " 
    245       jpkm1 = jpk-1                                          !:   "           " 
    246       jpij  = jpi*jpj                                        !:  jpi x j 
     242      IF( Agrif_Root() ) THEN 
     243         jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci !: first  dim. 
     244         jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj !: second dim. 
     245         jpk = jpkdta                                           !: third dim 
     246         jpim1 = jpi-1                                          !: inner domain indices 
     247         jpjm1 = jpj-1                                          !:   "           " 
     248         jpkm1 = jpk-1                                          !:   "           " 
     249         jpij  = jpi*jpj                                        !:  jpi x j 
     250      ENDIF 
    247251 
    248252      IF(lwp) THEN                            ! open listing units 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/par_oce.F90

    r2658 r2674  
    1717   !!---------------------------------------------------------------------- 
    1818   !! if we dont use massively parallel computer (parameters jpni=jpnj=1) so jpiglo=jpi and jpjglo=jpj 
    19 !!$#if ! defined key_mpp_dyndist  
    20 !!$   INTEGER, PUBLIC, PARAMETER ::    &  !: 
    21 !!$# if ! defined key_nproci 
    22 !!$      jpni   = 1,                   &  !: number of processors following i 
    23 !!$      jpnj   = 1,                   &  !: number of processors following j 
    24 !!$      jpnij  = 1                       !: nb of local domain = nb of processors  
    25 !!$      !                                !  ( <= jpni x jpnj ) 
    26 !!$# else 
    27 !!$      jpni   = key_nproci,          &  !: number of processors following i 
    28 !!$      jpnj   = key_nprocj,          &  !: number of processors following j 
    29 !!$#  if ! defined key_nprocij 
    30 !!$      jpnij  = key_nproci * key_nprocj !: nb of local domain = nb of processors  
    31 !!$      !                                !  ( <= jpni x jpnj ) 
    32 !!$#  else 
    33 !!$      jpnij  = key_nprocij             !: nb of local domain = nb of processors  
    34 !!$      !                                !  ( <= jpni x jpnj ) 
    35 !!$#  endif 
    36 !!$# endif 
    37 !!$#else 
    3819   INTEGER, PUBLIC            ::   jpni         !: number of processors following i  
    3920   INTEGER, PUBLIC            ::   jpnj         !: number of processors following j 
    4021   INTEGER, PUBLIC            ::   jpnij        !: nb of local domain = nb of processors ( <= jpni x jpnj ) 
    41 !!$#endif 
    4222   INTEGER, PUBLIC, PARAMETER ::   jpr2di = 0   !: number of columns for extra outer halo  
    4323   INTEGER, PUBLIC, PARAMETER ::   jpr2dj = 0   !: number of rows    for extra outer halo  
     
    188168   INTEGER, PUBLIC            ::   nbcellsy     = jpjglo - 2 - 2*nbghostcells   !: number of cells in j-direction 
    189169   ! 
    190    INTEGER, PUBLIC            ::   jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   !: first  dimension 
    191    INTEGER, PUBLIC            ::   jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   !: second dimension 
    192    INTEGER, PUBLIC            ::   jpim1 = jpi-1                                            !: inner domain indices 
    193    INTEGER, PUBLIC            ::   jpjm1 = jpj-1                                            !:   -     -      - 
    194    INTEGER, PUBLIC            ::   jpkm1 = jpk-1                                            !:   -     -      - 
    195    INTEGER, PUBLIC            ::   jpij  = jpi*jpj                                          !:  jpi x jpj 
    196170#else 
    197171   INTEGER, PUBLIC  ::   jpi   ! = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   !: first  dimension 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/wrk_nemo.F90

    r2662 r2674  
    4444   ! Maximum no. of workspaces of any one dimensionality that can be 
    4545   ! requested - MAX(num_1d_wrkspaces, num_2d_wrkspaces, num_3d_wrkspaces, num_4d_wrkspaces)  
    46    INTEGER, PARAMETER :: max_num_wrkspaces = 35 
     46   INTEGER :: max_num_wrkspaces = 35 
    4747 
    4848   ! If adding more arrays here, remember to increment the appropriate  
Note: See TracChangeset for help on using the changeset viewer.