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 10968 for NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icblbc.F90 – NEMO

Ignore:
Timestamp:
2019-05-13T11:43:03+02:00 (5 years ago)
Author:
andmirek
Message:

GMED 462 print levels implementation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icblbc.F90

    r10888 r10968  
    194194      ENDIF 
    195195 
    196       IF( nn_verbose_level >= 2 ) THEN 
     196      IF( nn_verbose_level >= 2 .AND. numicb /= -1) THEN 
    197197         WRITE(numicb,*) 'processor west  : ', ipe_W 
    198198         WRITE(numicb,*) 'processor east  : ', ipe_E 
     
    237237               this => this%next 
    238238               ibergs_to_send_e = ibergs_to_send_e + 1 
    239                IF( nn_verbose_level >= 4 ) THEN 
     239               IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    240240                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to east' 
    241241                  CALL flush( numicb ) 
     
    250250               this => this%next 
    251251               ibergs_to_send_w = ibergs_to_send_w + 1 
    252                IF( nn_verbose_level >= 4 ) THEN 
     252               IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    253253                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to west' 
    254254                  CALL flush( numicb ) 
     
    264264         END DO 
    265265      ENDIF 
    266       IF( nn_verbose_level >= 3) THEN 
     266      IF( nn_verbose_level >= 3 .AND. numicb /= -1) THEN 
    267267         WRITE(numicb,*) 'bergstep ',nktberg,' send ew: ', ibergs_to_send_e, ibergs_to_send_w 
    268268         CALL flush(numicb) 
     
    298298         ibergs_rcvd_from_w = INT( zwebergs(2) ) 
    299299      END SELECT 
    300       IF( nn_verbose_level >= 3) THEN 
     300      IF( nn_verbose_level >= 3 .AND. numicb /= -1 ) THEN 
    301301         WRITE(numicb,*) 'bergstep ',nktberg,' recv ew: ', ibergs_rcvd_from_w, ibergs_rcvd_from_e 
    302302         CALL flush(numicb) 
     
    312312         IF( ibergs_to_send_e > 0 .AND. l_isend ) CALL mpi_wait( iml_req1, iml_stat, iml_err ) 
    313313         DO i = 1, ibergs_rcvd_from_e 
    314             IF( nn_verbose_level >= 4 ) THEN 
     314            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    315315               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east' 
    316316               CALL flush( numicb ) 
     
    332332         IF( ibergs_to_send_e > 0 .AND. l_isend ) CALL mpi_wait( iml_req3, iml_stat, iml_err ) 
    333333         DO i = 1, ibergs_rcvd_from_e 
    334             IF( nn_verbose_level >= 4 ) THEN 
     334            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    335335               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east' 
    336336               CALL flush( numicb ) 
     
    339339         END DO 
    340340         DO i = 1, ibergs_rcvd_from_w 
    341             IF( nn_verbose_level >= 4 ) THEN 
     341            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    342342               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west' 
    343343               CALL flush( numicb ) 
     
    353353         IF( ibergs_to_send_w > 0 .AND. l_isend ) CALL mpi_wait( iml_req4, iml_stat, iml_err ) 
    354354         DO i = 1, ibergs_rcvd_from_w 
    355             IF( nn_verbose_level >= 4 ) THEN 
     355            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    356356               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west' 
    357357               CALL flush( numicb ) 
     
    375375               this => this%next 
    376376               ibergs_to_send_n = ibergs_to_send_n + 1 
    377                IF( nn_verbose_level >= 4 ) THEN 
     377               IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    378378                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to north' 
    379379                  CALL flush( numicb ) 
     
    385385               this => this%next 
    386386               ibergs_to_send_s = ibergs_to_send_s + 1 
    387                IF( nn_verbose_level >= 4 ) THEN 
     387               IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    388388                  WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to south' 
    389389                  CALL flush( numicb ) 
     
    396396         END DO 
    397397      ENDIF 
    398       if( nn_verbose_level >= 3) then 
     398      if( nn_verbose_level >= 3 .AND. numicb /= -1 ) then 
    399399         write(numicb,*) 'bergstep ',nktberg,' send ns: ', ibergs_to_send_n, ibergs_to_send_s 
    400400         call flush(numicb) 
     
    429429         ibergs_rcvd_from_s = INT( zsnbergs(2) ) 
    430430      END SELECT 
    431       if( nn_verbose_level >= 3) then 
     431      if( nn_verbose_level >= 3 .AND. numicb /= -1) then 
    432432         write(numicb,*) 'bergstep ',nktberg,' recv ns: ', ibergs_rcvd_from_s, ibergs_rcvd_from_n 
    433433         call flush(numicb) 
     
    443443         IF( ibergs_to_send_n > 0 .AND. l_isend ) CALL mpi_wait( iml_req1, iml_stat, iml_err ) 
    444444         DO i = 1, ibergs_rcvd_from_n 
    445             IF( nn_verbose_level >= 4 ) THEN 
     445            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN 
    446446               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north' 
    447447               CALL flush( numicb ) 
     
    463463         IF( ibergs_to_send_n > 0 .AND. l_isend ) CALL mpi_wait( iml_req3, iml_stat, iml_err ) 
    464464         DO i = 1, ibergs_rcvd_from_n 
    465             IF( nn_verbose_level >= 4 ) THEN 
     465            IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    466466               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north' 
    467467               CALL flush( numicb ) 
     
    470470         END DO 
    471471         DO i = 1, ibergs_rcvd_from_s 
    472             IF( nn_verbose_level >= 4 ) THEN 
     472            IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    473473               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south' 
    474474               CALL flush( numicb ) 
     
    484484         IF( ibergs_to_send_s > 0 .AND. l_isend ) CALL mpi_wait( iml_req4, iml_stat, iml_err ) 
    485485         DO i = 1, ibergs_rcvd_from_s 
    486             IF( nn_verbose_level >= 4 ) THEN 
     486            IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    487487               WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south' 
    488488               CALL flush( numicb ) 
     
    497497         i = ( ibergs_rcvd_from_n + ibergs_rcvd_from_s + ibergs_rcvd_from_e + ibergs_rcvd_from_w ) - & 
    498498             ( ibergs_to_send_n + ibergs_to_send_s + ibergs_to_send_e + ibergs_to_send_w ) 
    499          IF( ibergs_end-(ibergs_start+i) .NE. 0 ) THEN 
     499         IF( ibergs_end-(ibergs_start+i) .NE. 0 .AND. numicb /= -1) THEN 
    500500            WRITE( numicb,*   ) 'send_bergs_to_other_pes: net change in number of icebergs' 
    501501            WRITE( numicb,1000) 'send_bergs_to_other_pes: ibergs_end=', & 
     
    532532      IF( npolj /= 0 .AND. jpni > 1 ) CALL icb_lbc_mpp_nfld( ) 
    533533 
    534       IF( nn_verbose_level > 0 ) THEN 
     534      IF( nn_verbose_level > 0) THEN 
    535535         i = 0 
    536536         this => first_berg 
     
    544544                ijne .GT. mjg(nicbej)) THEN 
    545545               i = i + 1 
    546                WRITE(numicb,*) 'berg lost in halo: ', this%number(:),iine,ijne 
    547                WRITE(numicb,*) '                   ', nimpp, njmpp 
    548                WRITE(numicb,*) '                   ', nicbdi, nicbei, nicbdj, nicbej 
    549                CALL flush( numicb ) 
     546               IF(numicb /= -1) THEN  
     547                   WRITE(numicb,*) 'berg lost in halo: ', this%number(:),iine,ijne 
     548                   WRITE(numicb,*) '                   ', nimpp, njmpp 
     549                   WRITE(numicb,*) '                   ', nicbdi, nicbei, nicbdj, nicbej 
     550                   CALL flush( numicb ) 
     551               ENDIF 
    550552            ENDIF 
    551553            this => this%next 
     
    553555         CALL mpp_sum('icblbc', i) 
    554556         IF( i .GT. 0 ) THEN 
    555             WRITE( numicb,'(a,i4)') 'send_bergs_to_other_pes: # of bergs outside computational domain = ',i 
     557            IF(numicb /= -1) THEN 
     558                WRITE( numicb,'(a,i4)') 'send_bergs_to_other_pes: # of bergs outside computational domain = ',i 
     559            ELSE 
     560                WRITE( *,'(a,i4)') 'send_bergs_to_other_pes: # of bergs outside computational domain = ',i 
     561            ENDIF 
    556562            CALL ctl_stop('send_bergs_to_other_pes:  there are bergs still in halos!') 
    557563         ENDIF ! root_pe 
     
    656662             IF( nicbfldproc(jjn) .eq. INT(znbergs(1)) ) EXIT 
    657663            END DO 
    658             IF( jjn .GT. jpni .AND. nn_verbose_level > 0 ) write(numicb,*) 'ICB ERROR' 
     664            IF( jjn .GT. jpni .AND. nn_verbose_level > 0 .AND. numicb /= -1 ) write(numicb,*) 'ICB ERROR' 
    659665            nicbfldexpect(jjn) = INT( znbergs(2) ) 
    660666            !IF ( nicbfldexpect(jjn) .GT. 0 .AND. nn_verbose_level > 0 ) write(numicb,*) 'ICB expecting ',nicbfldexpect(jjn),' from ', nicbfldproc(jjn) 
     
    711717                           tmpberg => this 
    712718                           ibergs_to_send = ibergs_to_send + 1 
    713                            IF( nn_verbose_level >= 4 ) THEN 
     719                           IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    714720                              WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for north fold' 
    715721                              CALL flush( numicb ) 
     
    724730               END DO 
    725731            ENDIF 
    726             if( nn_verbose_level >= 3) then 
     732            if( nn_verbose_level >= 3 .AND. numicb /= -1) then 
    727733               write(numicb,*) 'bergstep ',nktberg,' send nfld: ', ibergs_to_send 
    728734               call flush(numicb) 
     
    755761            ! 
    756762            DO jk = 1, ibergs_to_rcv 
    757                IF( nn_verbose_level >= 4 ) THEN 
     763               IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN 
    758764                  WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_f%data(16,jk)),' from north fold' 
    759765                  CALL flush( numicb ) 
Note: See TracChangeset for help on using the changeset viewer.