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 8868 for branches/2017/dev_METO_2017/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90 – NEMO

Ignore:
Timestamp:
2017-12-01T09:43:23+01:00 (6 years ago)
Author:
timgraham
Message:

Merged dev_r8789_sbc into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_METO_2017/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r7761 r8868  
    206206      ! 
    207207#if defined key_agrif 
    208       IF( .NOT. Agrif_Root() ) THEN 
    209                          CALL Agrif_ParentGrid_To_ChildGrid() 
    210          IF( ln_diaobs ) CALL dia_obs_wri 
    211          IF( nn_timing == 1 )   CALL timing_finalize 
    212                                 CALL Agrif_ChildGrid_To_ParentGrid() 
    213       ENDIF 
     208      CALL Agrif_ParentGrid_To_ChildGrid() 
     209      IF( ln_diaobs ) CALL dia_obs_wri 
     210      IF( nn_timing == 1 )   CALL timing_finalize 
     211      CALL Agrif_ChildGrid_To_ParentGrid() 
    214212#endif 
    215213      IF( nn_timing == 1 )   CALL timing_finalize 
     
    452450      !                                      ! external forcing  
    453451!!gm to be added : creation and call of sbc_apr_init 
     452!==> cbr: sbc_apr_init in sbcmod as sbc_rnf_init 
    454453                            CALL    tide_init   ! tidal harmonics 
    455454                            CALL     sbc_init   ! surface boundary conditions (including sea-ice) 
     
    751750      ! 
    752751      ! Find the factors of n. 
    753       IF( kn == 1 )   GOTO 20 
    754  
    755       ! nu holds the unfactorised part of the number. 
    756       ! knfax holds the number of factors found. 
    757       ! l points to the allowed factor list. 
    758       ! ifac holds the current factor. 
    759       ! 
    760       inu   = kn 
    761       knfax = 0 
    762       ! 
    763       DO jl = ntest, 1, -1 
     752      IF( kn .NE. 1 ) THEN 
     753 
     754         ! nu holds the unfactorised part of the number. 
     755         ! knfax holds the number of factors found. 
     756         ! l points to the allowed factor list. 
     757         ! ifac holds the current factor. 
    764758         ! 
    765          ifac = ilfax(jl) 
    766          IF( ifac > inu )   CYCLE 
    767  
    768          ! Test whether the factor will divide. 
    769  
    770          IF( MOD(inu,ifac) == 0 ) THEN 
     759         inu   = kn 
     760         knfax = 0 
     761         ! 
     762         DO jl = ntest, 1, -1 
    771763            ! 
    772             knfax = knfax + 1            ! Add the factor to the list 
    773             IF( knfax > kmaxfax ) THEN 
    774                kerr = 6 
    775                write (*,*) 'FACTOR: insufficient space in factor array ', knfax 
    776                return 
     764            ifac = ilfax(jl) 
     765            IF( ifac > inu )   CYCLE 
     766    
     767            ! Test whether the factor will divide. 
     768    
     769            IF( MOD(inu,ifac) == 0 ) THEN 
     770               ! 
     771               knfax = knfax + 1            ! Add the factor to the list 
     772               IF( knfax > kmaxfax ) THEN 
     773                  kerr = 6 
     774                  write (*,*) 'FACTOR: insufficient space in factor array ', knfax 
     775                  return 
     776               ENDIF 
     777               kfax(knfax) = ifac 
     778               ! Store the other factor that goes with this one 
     779               knfax = knfax + 1 
     780               kfax(knfax) = inu / ifac 
     781               !WRITE (*,*) 'ARPDBG, factors ',knfax-1,' & ',knfax,' are ', kfax(knfax-1),' and ',kfax(knfax) 
    777782            ENDIF 
    778             kfax(knfax) = ifac 
    779             ! Store the other factor that goes with this one 
    780             knfax = knfax + 1 
    781             kfax(knfax) = inu / ifac 
    782             !WRITE (*,*) 'ARPDBG, factors ',knfax-1,' & ',knfax,' are ', kfax(knfax-1),' and ',kfax(knfax) 
    783          ENDIF 
     783            ! 
     784         END DO 
    784785         ! 
    785       END DO 
    786       ! 
    787    20 CONTINUE      ! Label 20 is the exit point from the factor search loop. 
     786      ENDIF 
    788787      ! 
    789788   END SUBROUTINE factorise 
Note: See TracChangeset for help on using the changeset viewer.