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 10934 for NEMO/trunk/src/OCE/BDY/bdyini.F90 – NEMO

Ignore:
Timestamp:
2019-05-07T11:29:45+02:00 (5 years ago)
Author:
jamesharle
Message:

Update code to accommodate multiple instances of nb_jpk_bdy (See ticket
#2274)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/BDY/bdyini.F90

    r10629 r10934  
    140140      INTEGER, ALLOCATABLE, DIMENSION(:,:,:)  ::   nbrdta           ! Discrete distance from rim points 
    141141      CHARACTER(LEN=1),DIMENSION(jpbgrd)      ::   cgrid 
    142       INTEGER :: com_east, com_west, com_south, com_north          ! Flags for boundaries sending 
     142      INTEGER :: com_east, com_west, com_south, com_north, jpk_max  ! Flags for boundaries sending 
    143143      INTEGER :: com_east_b, com_west_b, com_south_b, com_north_b  ! Flags for boundaries receiving 
    144144      INTEGER :: iw_b(4), ie_b(4), is_b(4), in_b(4)                ! Arrays for neighbours coordinates 
     
    397397          IF(lwp) WRITE(numout,*) 
    398398        ENDIF 
    399         IF( nb_jpk_bdy > 0 ) THEN 
     399        IF( nb_jpk_bdy(ib_bdy) > 0 ) THEN 
    400400           IF(lwp) WRITE(numout,*) '*** open boundary will be interpolate in the vertical onto the native grid ***' 
    401401        ELSE 
     
    516516         ALLOCATE( nbidta(jpbdta, jpbgrd, nb_bdy), nbjdta(jpbdta, jpbgrd, nb_bdy),    & 
    517517            &      nbrdta(jpbdta, jpbgrd, nb_bdy) ) 
    518  
    519          IF( nb_jpk_bdy>0 ) THEN 
    520             ALLOCATE( dta_global(jpbdtau, 1, nb_jpk_bdy) ) 
    521             ALLOCATE( dta_global_z(jpbdtau, 1, nb_jpk_bdy) ) 
    522             ALLOCATE( dta_global_dz(jpbdtau, 1, nb_jpk_bdy) ) 
    523          ELSE 
    524             ALLOCATE( dta_global(jpbdtau, 1, jpk) ) 
    525             ALLOCATE( dta_global_z(jpbdtau, 1, jpk) ) ! needed ?? TODO 
    526             ALLOCATE( dta_global_dz(jpbdtau, 1, jpk) )! needed ?? TODO 
    527          ENDIF 
     518          
     519         jpk_max = MAXVAL(nb_jpk_bdy) 
     520         jpk_max = MAX(jpk_max, jpk) 
     521 
     522         ALLOCATE( dta_global(jpbdtau, 1, jpk_max) ) 
     523         ALLOCATE( dta_global_z(jpbdtau, 1, jpk_max) ) ! needed ?? TODO 
     524         ALLOCATE( dta_global_dz(jpbdtau, 1, jpk_max) )! needed ?? TODO 
    528525 
    529526         IF ( icount>0 ) THEN 
    530             IF( nb_jpk_bdy>0 ) THEN 
    531                ALLOCATE( dta_global2(jpbdtas, nrimmax, nb_jpk_bdy) ) 
    532                ALLOCATE( dta_global2_z(jpbdtas, nrimmax, nb_jpk_bdy) ) 
    533                ALLOCATE( dta_global2_dz(jpbdtas, nrimmax, nb_jpk_bdy) ) 
    534             ELSE 
    535                ALLOCATE( dta_global2(jpbdtas, nrimmax, jpk) ) 
    536                ALLOCATE( dta_global2_z(jpbdtas, nrimmax, jpk) ) ! needed ?? TODO 
    537                ALLOCATE( dta_global2_dz(jpbdtas, nrimmax, jpk) )! needed ?? TODO   
    538             ENDIF 
     527            ALLOCATE( dta_global2(jpbdtas, nrimmax, jpk_max) ) 
     528            ALLOCATE( dta_global2_z(jpbdtas, nrimmax, jpk_max) ) ! needed ?? TODO 
     529            ALLOCATE( dta_global2_dz(jpbdtas, nrimmax, jpk_max) )! needed ?? TODO   
    539530         ENDIF 
    540531         !  
Note: See TracChangeset for help on using the changeset viewer.