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 10753 – NEMO

Changeset 10753


Ignore:
Timestamp:
2019-03-14T16:34:25+01:00 (5 years ago)
Author:
andmirek
Message:

GMED 450: ICB model

Location:
branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbclv.F90

    r8046 r10753  
    5656      INTEGER                         :: imx                           ! temporary integer for max berg class 
    5757      LOGICAL, SAVE                   :: ll_first_call = .TRUE. 
     58      LOGICAL                         :: ll_write 
    5859      !!---------------------------------------------------------------------- 
    5960      ! 
     
    6869      ! nn_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
    6970      IF( nn_coupled_iceshelf_fluxes .gt. 0 ) THEN 
    70  
     71        ll_write = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend ) .AND. lwp 
    7172        ! Adjust total calving rates so that sum of iceberg calving and iceshelf melting in the northern 
    7273        ! and southern hemispheres equals rate of increase of mass of greenland and antarctic ice sheets 
     
    8081 
    8182         ! check 
    82          IF(lwp) WRITE(numout, *) 'Greenland iceberg calving climatology (kg/s) : ',zgreenland_calving_sum 
     83         IF(ll_write) WRITE(numout, *) 'Greenland iceberg calving climatology (kg/s) : ',zgreenland_calving_sum 
    8384         zgreenland_calving_sum = SUM( berg_grid%calving(:,:) * greenland_icesheet_mask(:,:) ) 
    8485         IF( lk_mpp ) CALL mpp_sum( zgreenland_calving_sum ) 
    85          IF(lwp) WRITE(numout, *) 'Greenland iceberg calving adjusted value (kg/s) : ',zgreenland_calving_sum 
     86         IF(ll_write) WRITE(numout, *) 'Greenland iceberg calving adjusted value (kg/s) : ',zgreenland_calving_sum 
    8687 
    8788         zantarctica_calving_sum = SUM( berg_grid%calving(:,:) * antarctica_icesheet_mask(:,:) ) 
     
    9293  
    9394         ! check 
    94          IF(lwp) WRITE(numout, *) 'Antarctica iceberg calving climatology (kg/s) : ',zantarctica_calving_sum 
     95         IF(ll_write) WRITE(numout, *) 'Antarctica iceberg calving climatology (kg/s) : ',zantarctica_calving_sum 
    9596         zantarctica_calving_sum = SUM( berg_grid%calving(:,:) * antarctica_icesheet_mask(:,:) ) 
    9697         IF( lk_mpp ) CALL mpp_sum( zantarctica_calving_sum ) 
    97          IF(lwp) WRITE(numout, *) 'Antarctica iceberg calving adjusted value (kg/s) : ',zantarctica_calving_sum 
     98         IF(ll_write) WRITE(numout, *) 'Antarctica iceberg calving adjusted value (kg/s) : ',zantarctica_calving_sum 
    9899 
    99100      ENDIF 
     
    218219      CALL lbc_lnk( berg_grid%stored_heat, 'T', 1._wp ) 
    219220      ! 
    220       IF( nn_verbose_level > 0 .AND. icntmax > 1 )   WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea 
     221      IF( nn_verbose_level > 0 .AND. icntmax > 1 .AND. numicb.NE.-1)   WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea 
    221222      ! 
    222223   END SUBROUTINE  icb_clv 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbdia.F90

    r6491 r10753  
    311311                                    'returned',calving_ret_net) 
    312312         ENDIF 
    313          WRITE( numicb, '("calved by class = ",i6,20(",",i6))') (nbergs_calved_by_class(ik),ik=1,nclasses) 
    314          IF ( nspeeding_tickets > 0 ) WRITE( numicb, '("speeding tickets issued = ",i6)') nspeeding_tickets 
     313         IF(numicb.NE.-1) THEN 
     314           WRITE( numicb, '("calved by class = ",i6,20(",",i6))') (nbergs_calved_by_class(ik),ik=1,nclasses) 
     315           IF ( nspeeding_tickets > 0 ) WRITE( numicb, '("speeding tickets issued = ",i6)') nspeeding_tickets 
     316         ENDIF 
    315317 
    316318         nbergs_start              = nbergs_end 
     
    418420         stored_start = SUM( berg_grid%stored_ice(:,:,:) ) 
    419421         IF( lk_mpp ) CALL mpp_sum( stored_start ) 
    420          WRITE(numicb,'(a,es13.6,a)')   'icb_dia_income: initial stored mass=',stored_start,' kg' 
     422         IF(numicb.NE.-1) WRITE(numicb,'(a,es13.6,a)')   'icb_dia_income: initial stored mass=',stored_start,' kg' 
    421423         ! 
    422424         stored_heat_start = SUM( berg_grid%stored_heat(:,:) ) 
    423425         IF( lk_mpp ) CALL mpp_sum( stored_heat_start ) 
    424          WRITE(numicb,'(a,es13.6,a)')    'icb_dia_income: initial stored heat=',stored_heat_start,' J' 
     426         IF(numicb.NE.-1) WRITE(numicb,'(a,es13.6,a)')    'icb_dia_income: initial stored heat=',stored_heat_start,' J' 
    425427      ENDIF 
    426428      ! 
     
    495497      ! 
    496498      IF ( PRESENT(kbergs) ) THEN 
    497          WRITE(numicb,100) cd_budgetstr // ' state:',                                    & 
     499         IF(numicb.NE.-1) &  
     500            &        WRITE(numicb,100) cd_budgetstr // ' state:',                        & 
    498501                           cd_startstr  // ' start',  pstartval,         cd_budgetunits, & 
    499502                           cd_endstr    // ' end',    pendval,           cd_budgetunits, & 
     
    501504                           '# of bergs', kbergs 
    502505      ELSE 
    503          WRITE(numicb,100) cd_budgetstr // ' state:',                                   & 
     506         IF(numicb.NE.-1) & 
     507            &        WRITE(numicb,100) cd_budgetstr // ' state:',                       & 
    504508                           cd_startstr  // ' start', pstartval,         cd_budgetunits, & 
    505509                           cd_endstr    // ' end',   pendval,           cd_budgetunits, & 
     
    517521      !!---------------------------------------------------------------------- 
    518522      ! 
    519       WRITE(numicb,200) cd_budgetstr // ' check:',                 & 
     523      IF(numicb.NE.-1) & 
     524         &        WRITE(numicb,200) cd_budgetstr // ' check:',     & 
    520525                        cd_startstr,    pstartval, cd_budgetunits, & 
    521526                        cd_endstr,      pendval,   cd_budgetunits, & 
     
    538543         &   MAX( 1.e-30, MAX( abs( pendval - pstartval ) , ABS( pinval - poutval ) ) ) 
    539544 
    540       WRITE(numicb,200) cd_budgetstr // ' budget:', & 
     545      IF(numicb.NE.-1) & 
     546         &        WRITE(numicb,200) cd_budgetstr // ' budget:',                     & 
    541547         &              cd_instr     // ' in',      pinval,         cd_budgetunits, & 
    542548         &              cd_outstr    // ' out',     poutval,        cd_budgetunits, & 
     
    554560      INTEGER,       INTENT(in) :: pstartval, pendval 
    555561      ! 
    556       WRITE(numicb,100) cd_budgetstr // ' state:',           & 
     562      IF(numicb.NE.-1) & 
     563         &        WRITE(numicb,100) cd_budgetstr // ' state:',           & 
    557564         &              cd_startstr  // ' start', pstartval, & 
    558565         &              cd_endstr    // ' end',   pendval,   & 
     
    571578      !!---------------------------------------------------------------------- 
    572579      ! 
    573       WRITE(numicb,200) cd_budgetstr // ' budget:', & 
     580      IF(numicb.NE.-1) & 
     581         &        WRITE(numicb,200) cd_budgetstr // ' budget:', & 
    574582                        cd_instr     // ' in',      pinval, & 
    575583                        cd_outstr    // ' out',     poutval, & 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbdyn.F90

    r6486 r10753  
    372372      !                                      ! check the speed and acceleration limits 
    373373      IF( ABS( zuveln ) > pp_vel_lim   .OR. ABS( zvveln ) > pp_vel_lim   )   & 
    374          WRITE(numicb,'("pe=",i3,x,a)') narea,'Dump triggered by excessive velocity' 
     374         WRITE(*,'("pe=",i3,x,a)') narea,'Dump triggered by excessive velocity' 
    375375      IF( ABS( pax    ) > pp_accel_lim .OR. ABS( pay    ) > pp_accel_lim )   & 
    376          WRITE(numicb,'("pe=",i3,x,a)') narea,'Dump triggered by excessive acceleration' 
     376         WRITE(*,'("pe=",i3,x,a)') narea,'Dump triggered by excessive acceleration' 
    377377      ! 
    378378   END SUBROUTINE icb_accel 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90

    r6823 r10753  
    7878      !                          ! note that we choose to do this on all processors since we cannot 
    7979      !                          ! predict where icebergs will be ahead of time 
    80       CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
     80      numicb=-1 
     81      IF(nn_verbose_level>0 .AND. nprint>0) THEN 
     82        CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
     83      ELSE 
     84        IF(lwp) CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
     85      ENDIF 
    8186 
    8287      ! set parameters (mostly from namelist) 
     
    187192      ENDIF 
    188193      ! 
    189       IF( nn_verbose_level > 0) THEN 
     194      IF( nn_verbose_level > 0 .AND. numicb.NE.-1) THEN 
    190195         WRITE(numicb,*) 'processor ', narea 
    191196         WRITE(numicb,*) 'jpi, jpj   ', jpi, jpj 
     
    241246         CALL iom_close( inum )                                     ! close file 
    242247         ! 
    243          WRITE(numicb,*) 
    244          WRITE(numicb,*) '          calving read in a file' 
     248         IF(numicb.NE.-1) THEN 
     249            WRITE(numicb,*) 
     250            WRITE(numicb,*) '          calving read in a file' 
     251         ENDIF 
    245252         ALLOCATE( sf_icb(1), STAT=istat1 )         ! Create sf_icb structure (calving) 
    246253         ALLOCATE( sf_icb(1)%fnow(jpi,jpj,1), STAT=istat2 ) 
     
    336343      ibergs = icb_utl_count() 
    337344      IF( lk_mpp ) CALL mpp_sum(ibergs) 
    338       WRITE(numicb,'(a,i6,a)') 'diamonds, icb_ini_gen: ',ibergs,' were generated' 
     345      IF(numicb.NE.-1) WRITE(numicb,'(a,i6,a)') 'diamonds, icb_ini_gen: ',ibergs,' were generated' 
    339346      ! 
    340347   END SUBROUTINE icb_ini_gen 
     
    368375      READ  ( numnam_cfg, namberg, IOSTAT = ios, ERR = 902 ) 
    369376902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namberg in configuration namelist', lwp ) 
    370       IF(lwm) WRITE ( numond, namberg ) 
     377      IF(lwm .AND. nprint>3) WRITE ( numond, namberg ) 
    371378#else 
    372379      IF(lwp) THEN 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icblbc.F90

    r6486 r10753  
    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 ) 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90

    r9321 r10753  
    134134      ! Sanity check 
    135135      jn = icb_utl_count() 
    136       IF (nn_verbose_level >= 0)   & 
     136      IF (nprint > 0 .AND. lwp)   & 
    137137         WRITE(numout,'(2(a,i5))') 'icebergs, read_restart_bergs: # bergs =',jn,' on PE',narea-1 
    138138      IF( lk_mpp ) THEN 
     
    141141         CALL mpp_sum(jn) 
    142142      ENDIF 
    143       IF(lwp)   WRITE(numout,'(a,i5,a,i5,a)') 'icebergs, read_restart_bergs: there were',ibergs_in_file,   & 
     143      IF(lwp .AND. nprint > 1)   & 
     144         &    WRITE(numout,'(a,i5,a,i5,a)') 'icebergs, read_restart_bergs: there were',ibergs_in_file,   & 
    144145         &                                    ' bergs in the restart file and', jn,' bergs have been read' 
    145146      ! 
     
    147148      CALL iom_close( ncid ) 
    148149      ! 
    149       IF(nn_timing == 2)  CALL timing_stop('iom_rstget') 
    150       IF( lwp .and. nn_verbose_level >= 0)  WRITE(numout,'(a)') 'icebergs, read_restart_bergs: completed' 
     150      IF(nn_timing == 1)  CALL timing_stop('iom_rstget') 
     151      IF( lwp .and. nprint >= 0)  WRITE(numout,'(a)') 'icebergs, read_restart_bergs: completed' 
    151152      ! 
    152153   END SUBROUTINE icb_rst_read 
     
    190191         WRITE(cl_filename,'(A,"_icebergs_",A,"_restart.nc")') TRIM(cexper), TRIM(ADJUSTL(clkt)) 
    191192      ENDIF 
    192       IF (nn_verbose_level >= 0) WRITE(numout,'(2a)') 'icebergs, write_restart: creating ',TRIM(cl_path)//TRIM(cl_filename) 
     193      IF (nprint > 0 .AND. lwp) & 
     194                       WRITE(numout,'(2a)') 'icebergs, write_restart: creating ',TRIM(cl_path)//TRIM(cl_filename) 
    193195 
    194196      nret = NF90_CREATE(TRIM(cl_path)//TRIM(cl_filename), NF90_CLOBBER, ncid) 
     
    324326         ENDIF 
    325327      ENDDO 
    326       IF( lwp ) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_ice  written' 
     328      IF( lwp .AND. nprint > 1) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_ice  written' 
    327329 
    328330      nret = NF90_PUT_VAR( ncid, nkountid, num_bergs(:) ) 
     
    331333      nret = NF90_PUT_VAR( ncid, nsheatid, berg_grid%stored_heat(:,:) ) 
    332334      IF (nret .ne. NF90_NOERR) CALL ctl_stop('icebergs, write_restart: nf_put_var stored_heat failed') 
    333       IF( lwp ) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_heat written' 
     335      IF( lwp .AND. nprint > 1) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_heat written' 
    334336 
    335337      nret = NF90_PUT_VAR( ncid, ncalvid , src_calving(:,:) ) 
     
    337339      nret = NF90_PUT_VAR( ncid, ncalvhid, src_calving_hflx(:,:) ) 
    338340      IF (nret .ne. NF90_NOERR) CALL ctl_stop('icebergs, write_restart: nf_put_var calving_hflx failed') 
    339       IF( lwp ) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: calving written' 
     341      IF( lwp .AND. nprint > 1) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: calving written' 
    340342 
    341343      IF ( ASSOCIATED(first_berg) ) THEN 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbstp.F90

    r6486 r10753  
    8888 
    8989      ! write out time 
    90       IF( ll_verbose ) WRITE(numicb,9100) nktberg, ndastp, nsec_day 
     90      IF( ll_verbose .AND. numicb.NE.-1) WRITE(numicb,9100) nktberg, ndastp, nsec_day 
    9191 9100 FORMAT('kt= ',i8, ' day= ',i8,' secs=',i8) 
    9292 
     
    166166      IF( nn_sample_rate .GT. 0 ) CALL icb_trj_end() 
    167167 
    168       IF(lwp)   WRITE(numout,'(a,i6)') 'icebergs: icb_end complete', narea 
    169       CALL flush( numicb ) 
    170       CLOSE( numicb ) 
     168      IF(lwp .AND. nprint>3)   WRITE(numout,'(a,i6)') 'icebergs: icb_end complete', narea 
     169      IF(numicb.NE.-1) THEN 
     170         CALL flush( numicb ) 
     171         CLOSE( numicb ) 
     172      ENDIF 
    171173      ! 
    172174   END SUBROUTINE icb_end 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbtrj.F90

    r7733 r10753  
    8383      ELSE                ;   WRITE(cl_filename,'("trajectory_icebergs_",A,"-",A         ,".nc")') TRIM(ADJUSTL(cldate_ini)), TRIM(ADJUSTL(cldate_end)) 
    8484      ENDIF 
    85       IF ( lwp .AND. nn_verbose_level >= 0) WRITE(numout,'(2a)') 'icebergs, icb_trj_init: creating ',TRIM(cl_filename) 
     85      IF ( lwp .AND. nprint > 2) WRITE(numout,'(2a)') 'icebergs, icb_trj_init: creating ',TRIM(cl_filename) 
    8686 
    8787      iret = NF90_CREATE(TRIM(cl_filename), NF90_CLOBBER, ntrajid) 
     
    246246         this=>this%next 
    247247      END DO 
    248       IF( lwp .and. nn_verbose_level > 0 ) WRITE(numout,*) 'trajectory write to frame ', jn 
     248      IF( lwp .AND. nprint > 0 ) WRITE(numout,*) 'trajectory write to frame ', jn 
    249249      num_traj = jn 
    250250      ! 
  • branches/UKMO/dev_r5518_GO6_package_text_diagnostics/NEMOGCM/NEMO/OPA_SRC/ICB/icbutl.F90

    r6486 r10753  
    661661      ! 
    662662      pt => berg%current_point 
     663      IF(numicb.NE.-1) THEN 
    663664      WRITE(numicb, 9200) kt, berg%number(1), & 
    664665                   pt%xi, pt%yj, pt%lon, pt%lat, pt%uvel, pt%vvel,  & 
    665666                   pt%uo, pt%vo, pt%ua, pt%va, pt%ui, pt%vi 
    666667      CALL flush( numicb ) 
     668      ENDIF 
    667669 9200 FORMAT(5x,i5,2x,i10,6(2x,2f10.4)) 
    668670      ! 
     
    685687      ! 
    686688      this => first_berg 
    687       IF( ASSOCIATED(this) ) THEN 
    688          WRITE(numicb,'(a," pe=(",i3,")")' ) cd_label, narea 
    689          WRITE(numicb,'(a8,4x,a6,12x,a5,15x,a7,19x,a3,17x,a5,17x,a5,17x,a5)' )   & 
     689      IF(numicb.NE.-1) THEN 
     690         IF( ASSOCIATED(this) ) THEN 
     691            WRITE(numicb,'(a," pe=(",i3,")")' ) cd_label, narea 
     692            WRITE(numicb,'(a8,4x,a6,12x,a5,15x,a7,19x,a3,17x,a5,17x,a5,17x,a5)' )   & 
    690693            &         'timestep', 'number', 'xi,yj','lon,lat','u,v','uo,vo','ua,va','ui,vi' 
     694         ENDIF 
    691695      ENDIF 
    692696      DO WHILE( ASSOCIATED(this) ) 
     
    697701      inbergs = ibergs 
    698702      IF( lk_mpp )   CALL mpp_sum(inbergs) 
    699       IF( ibergs > 0 )   WRITE(numicb,'(a," there are",i5," bergs out of",i6," on PE ",i4)')   & 
     703      IF( ibergs > 0 .AND. numicb.NE.-1)   WRITE(numicb,'(a," there are",i5," bergs out of",i6," on PE ",i4)')   & 
    700704         &                                  cd_label, ibergs, inbergs, narea 
    701705      ! 
Note: See TracChangeset for help on using the changeset viewer.