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 11101 for branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/ICB/icblbc.F90 – NEMO

Ignore:
Timestamp:
2019-06-11T16:10:28+02:00 (5 years ago)
Author:
frrh
Message:

Merge changes from Met Office GMED ticket 450 to reduce unnecessary
text output from NEMO.
This output, which is typically not switchable, is rarely of interest
in normal (non-debugging) runs and simply redunantley consumes extra
file space.
Further, the presence of this text output has been shown to
significantly degrade performance of models which are run during
Met Office HPC RAID (disk) checks.
The new code introduces switches which are configurable via the
changes made in the associated Met Office MOCI ticket 399.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/ICB/icblbc.F90

    r6486 r11101  
    197197      ENDIF 
    198198 
    199       IF( nn_verbose_level >= 2 ) THEN 
     199      IF( nn_verbose_level >= 2 .AND. numicb .NE. -1) THEN 
    200200         WRITE(numicb,*) 'processor west  : ', ipe_W 
    201201         WRITE(numicb,*) 'processor east  : ', ipe_E 
     
    240240               this => this%next 
    241241               ibergs_to_send_e = ibergs_to_send_e + 1 
    242                IF( nn_verbose_level >= 4 ) THEN 
     242               IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    243243                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to east' 
    244244                  CALL flush( numicb ) 
     
    253253               this => this%next 
    254254               ibergs_to_send_w = ibergs_to_send_w + 1 
    255                IF( nn_verbose_level >= 4 ) THEN 
     255               IF( nn_verbose_level >= 4 .AND. numicb.NE.-1) THEN 
    256256                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to west' 
    257257                  CALL flush( numicb ) 
     
    267267         END DO 
    268268      ENDIF 
    269       IF( nn_verbose_level >= 3) THEN 
     269      IF( nn_verbose_level >= 3 .AND. numicb .NE. -1) THEN 
    270270         WRITE(numicb,*) 'bergstep ',nktberg,' send ew: ', ibergs_to_send_e, ibergs_to_send_w 
    271271         CALL flush(numicb) 
     
    301301         ibergs_rcvd_from_w = INT( zwebergs(2) ) 
    302302      END SELECT 
    303       IF( nn_verbose_level >= 3) THEN 
     303      IF( nn_verbose_level >= 3 .AND. numicb .NE. -1) THEN 
    304304         WRITE(numicb,*) 'bergstep ',nktberg,' recv ew: ', ibergs_rcvd_from_w, ibergs_rcvd_from_e 
    305305         CALL flush(numicb) 
     
    315315         IF( ibergs_to_send_e > 0 .AND. l_isend ) CALL mpi_wait( iml_req1, iml_stat, iml_err ) 
    316316         DO i = 1, ibergs_rcvd_from_e 
    317             IF( nn_verbose_level >= 4 ) THEN 
     317            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    318318               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east' 
    319319               CALL flush( numicb ) 
     
    335335         IF( ibergs_to_send_e > 0 .AND. l_isend ) CALL mpi_wait( iml_req3, iml_stat, iml_err ) 
    336336         DO i = 1, ibergs_rcvd_from_e 
    337             IF( nn_verbose_level >= 4 ) THEN 
     337            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    338338               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east' 
    339339               CALL flush( numicb ) 
     
    342342         END DO 
    343343         DO i = 1, ibergs_rcvd_from_w 
    344             IF( nn_verbose_level >= 4 ) THEN 
     344            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    345345               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west' 
    346346               CALL flush( numicb ) 
     
    356356         IF( ibergs_to_send_w > 0 .AND. l_isend ) CALL mpi_wait( iml_req4, iml_stat, iml_err ) 
    357357         DO i = 1, ibergs_rcvd_from_w 
    358             IF( nn_verbose_level >= 4 ) THEN 
     358            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    359359               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west' 
    360360               CALL flush( numicb ) 
     
    378378               this => this%next 
    379379               ibergs_to_send_n = ibergs_to_send_n + 1 
    380                IF( nn_verbose_level >= 4 ) THEN 
     380               IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    381381                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to north' 
    382382                  CALL flush( numicb ) 
     
    388388               this => this%next 
    389389               ibergs_to_send_s = ibergs_to_send_s + 1 
    390                IF( nn_verbose_level >= 4 ) THEN 
     390               IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    391391                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to south' 
    392392                  CALL flush( numicb ) 
     
    399399         END DO 
    400400      ENDIF 
    401       if( nn_verbose_level >= 3) then 
     401      if( nn_verbose_level >= 3 .AND. numicb .NE. -1) then 
    402402         write(numicb,*) 'bergstep ',nktberg,' send ns: ', ibergs_to_send_n, ibergs_to_send_s 
    403403         call flush(numicb) 
     
    432432         ibergs_rcvd_from_s = INT( zsnbergs(2) ) 
    433433      END SELECT 
    434       if( nn_verbose_level >= 3) then 
     434      if( nn_verbose_level >= 3 .AND. numicb .NE. -1) then 
    435435         write(numicb,*) 'bergstep ',nktberg,' recv ns: ', ibergs_rcvd_from_s, ibergs_rcvd_from_n 
    436436         call flush(numicb) 
     
    446446         IF( ibergs_to_send_n > 0 .AND. l_isend ) CALL mpi_wait( iml_req1, iml_stat, iml_err ) 
    447447         DO i = 1, ibergs_rcvd_from_n 
    448             IF( nn_verbose_level >= 4 ) THEN 
     448            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    449449               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north' 
    450450               CALL flush( numicb ) 
     
    466466         IF( ibergs_to_send_n > 0 .AND. l_isend ) CALL mpi_wait( iml_req3, iml_stat, iml_err ) 
    467467         DO i = 1, ibergs_rcvd_from_n 
    468             IF( nn_verbose_level >= 4 ) THEN 
     468            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    469469               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north' 
    470470               CALL flush( numicb ) 
     
    473473         END DO 
    474474         DO i = 1, ibergs_rcvd_from_s 
    475             IF( nn_verbose_level >= 4 ) THEN 
     475            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    476476               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south' 
    477477               CALL flush( numicb ) 
     
    487487         IF( ibergs_to_send_s > 0 .AND. l_isend ) CALL mpi_wait( iml_req4, iml_stat, iml_err ) 
    488488         DO i = 1, ibergs_rcvd_from_s 
    489             IF( nn_verbose_level >= 4 ) THEN 
     489            IF( nn_verbose_level >= 4 .AND. numicb .NE. -1) THEN 
    490490               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south' 
    491491               CALL flush( numicb ) 
     
    495495      END SELECT 
    496496 
    497       IF( nn_verbose_level > 0 ) THEN 
     497      IF( nn_verbose_level > 0 .AND. numicb .NE. -1) THEN 
    498498         ! compare the number of icebergs on this processor from the start to the end 
    499499         ibergs_end = icb_utl_count() 
     
    535535      IF( npolj /= 0 .AND. jpni > 1 ) CALL icb_lbc_mpp_nfld( ) 
    536536 
    537       IF( nn_verbose_level > 0 ) THEN 
     537      IF( nn_verbose_level > 0) THEN 
    538538         i = 0 
    539539         this => first_berg 
     
    547547                ijne .GT. mjg(nicbej)) THEN 
    548548               i = i + 1 
    549                WRITE(numicb,*) 'berg lost in halo: ', this%number(:),iine,ijne 
    550                WRITE(numicb,*) '                   ', nimpp, njmpp 
    551                WRITE(numicb,*) '                   ', nicbdi, nicbei, nicbdj, nicbej 
    552                CALL flush( numicb ) 
     549               IF(numicb .NE. -1) THEN 
     550                   WRITE(numicb,*) 'berg lost in halo: ', this%number(:),iine,ijne 
     551                   WRITE(numicb,*) '                   ', nimpp, njmpp 
     552                   WRITE(numicb,*) '                   ', nicbdi, nicbei, nicbdj, nicbej 
     553                   CALL flush( numicb ) 
     554               ENDIF 
    553555            ENDIF 
    554556            this => this%next 
     
    659661             IF( nicbfldproc(jjn) .eq. INT(znbergs(1)) ) EXIT 
    660662            END DO 
    661             IF( jjn .GT. jpni ) write(numicb,*) 'ICB ERROR' 
     663            IF( jjn .GT. jpni ) write(*,*) 'ICB ERROR' 
    662664            nicbfldexpect(jjn) = INT( znbergs(2) ) 
    663665            !IF ( nicbfldexpect(jjn) .GT. 0) write(numicb,*) 'ICB expecting ',nicbfldexpect(jjn),' from ', nicbfldproc(jjn) 
     
    714716                           tmpberg => this 
    715717                           ibergs_to_send = ibergs_to_send + 1 
    716                            IF( nn_verbose_level >= 4 ) THEN 
     718                           IF( nn_verbose_level >= 4 .AND. numicb.NE.-1) THEN 
    717719                              WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for north fold' 
    718720                              CALL flush( numicb ) 
     
    727729               END DO 
    728730            ENDIF 
    729             if( nn_verbose_level >= 3) then 
     731            if( nn_verbose_level >= 3 .AND. numicb.NE.-1) then 
    730732               write(numicb,*) 'bergstep ',nktberg,' send nfld: ', ibergs_to_send 
    731733               call flush(numicb) 
     
    758760            ! 
    759761            DO jk = 1, ibergs_to_rcv 
    760                IF( nn_verbose_level >= 4 ) THEN 
     762               IF( nn_verbose_level >= 4 .AND. numicb.NE.-1) THEN 
    761763                  WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_f%data(16,jk)),' from north fold' 
    762764                  CALL flush( numicb ) 
Note: See TracChangeset for help on using the changeset viewer.