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 11081 for NEMO/branches/UKMO/NEMO_4.0_mirror/src/OCE/BDY/bdyini.F90 – NEMO

Ignore:
Timestamp:
2019-06-06T16:11:54+02:00 (5 years ago)
Author:
davestorkey
Message:

UKMO/NEMO_4.0_mirror : update to be a copy of rev 11079 of release-4.0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0_mirror/src/OCE/BDY/bdyini.F90

    r10888 r11081  
    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         !  
     
    960951                       & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN 
    961952                       ii = nbidta(ib,igrd,ib_bdy)- iw_b(1)+2 
    962                        if((com_west_b .ne. 1) .and. (ii == (nlcit(nowe+1)-1))) then 
     953                       if( ii == (nlcit(nowe+1)-1) ) then 
    963954                          ij = nbjdta(ib,igrd,ib_bdy) - is_b(1)+2 
    964955                          if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then 
     
    974965                       & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN 
    975966                       ii = nbidta(ib,igrd,ib_bdy)- iw_b(2)+2 
    976                        if((com_east_b .ne. 1) .and. (ii == 2)) then 
     967                       if( ii == 2 ) then 
    977968                          ij = nbjdta(ib,igrd,ib_bdy) - is_b(2)+2 
    978969                          if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then 
     
    989980                       & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN 
    990981                       ii = nbidta(ib,igrd,ib_bdy)- iw_b(1)+2 
    991                        if((com_west_b .ne. 1) .and. (ii == (nlcit(nowe+1)-1))) then 
     982                       if( ii == (nlcit(nowe+1)-1) ) then 
    992983                          ij = nbjdta(ib,igrd,ib_bdy) - is_b(1)+2 
    993984                          if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then 
     
    1004995                       & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN 
    1005996                       ii = nbidta(ib,igrd,ib_bdy)- iw_b(2)+2 
    1006                        if((com_east_b .ne. 1) .and. (ii == 2)) then 
     997                       if( ii == 2 ) then 
    1007998                          ij = nbjdta(ib,igrd,ib_bdy) - is_b(2)+2 
    1008999                          if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then 
Note: See TracChangeset for help on using the changeset viewer.