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 8643 for branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90 – NEMO

Ignore:
Timestamp:
2017-10-19T18:41:56+02:00 (7 years ago)
Author:
jpalmier
Message:

JPALM -- 19-10-17 -- Add ctl_warn for master node output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r8642 r8643  
    8181                                            gdepw_0, gdepw_n,               & 
    8282                                            nday_year, nsec_day, nyear,     & 
    83                                             rdt, tmask 
     83                                            rdt, tmask, mig, mjg 
    8484      USE in_out_manager,             ONLY: lwp, numout, nn_date0 
    8585# if defined key_iomput 
     
    8787# endif 
    8888      USE lbclnk,                     ONLY: lbc_lnk 
    89       USE lib_mpp,                    ONLY: ctl_stop 
     89      USE lib_mpp,                    ONLY: ctl_stop, ctl_warn 
    9090      USE oce,                        ONLY: tsb, tsn 
    9191      USE par_kind,                   ONLY: wp 
     
    477477             !! AXY (28/02/14): check input fields 
    478478                  if (ztmp(ji,jj) .lt. -3.0 .or. ztmp(ji,jj) .gt. 40.0 ) then 
    479                      IF(lwp) WRITE(numout,*)                                 & 
    480                         ' trc_bio_medusa: T WARNING 3D, ',                   & 
    481                         tsb(ji,jj,jk,jp_tem), tsn(ji,jj,jk,jp_tem),          & 
    482                         ' at (', ji, ',', jj, ',', jk, ') at time', kt 
     479                     Call ctl_warn(' trc_bio_medusa: T WARNING 3D : ',       & 
     480                                   tsn(ji,jj,jk,jp_tem), 'at I, J, K, kt :', &  
     481                                   mig(ji), mjg(jj), jk, kt ) 
     482# if defined key_debug_medusa 
    483483                     !! temperature 
    484484                     ztmp(ji,jj) = tsb(ji,jj,jk,jp_tem) 
     
    491491                      IF(lwp) WRITE(numout,*)                                 & 
    492492                     tsn(ji-1,jj-1,jk,jp_tem), tsn(ji,jj-1,jk,jp_tem), tsn(ji+1,jj-1,jk,jp_tem) 
    493                      sumtsn = ( tmask(ji-1,jj+1,jk) * tsn(ji-1,jj+1,jk,jp_tem) ) + &  
    494                               ( tmask(ji  ,jj+1,jk) * tsn(ji  ,jj+1,jk,jp_tem) ) + &  
    495                               ( tmask(ji+1,jj+1,jk) * tsn(ji+1,jj+1,jk,jp_tem) ) + &  
    496                               ( tmask(ji-1,jj  ,jk) * tsn(ji-1,jj  ,jk,jp_tem) ) + &  
    497                               ( tmask(ji+1,jj  ,jk) * tsn(ji+1,jj  ,jk,jp_tem) ) + &  
    498                               ( tmask(ji-1,jj-1,jk) * tsn(ji-1,jj-1,jk,jp_tem) ) + &  
    499                               ( tmask(ji  ,jj-1,jk) * tsn(ji  ,jj-1,jk,jp_tem) ) + &  
    500                               ( tmask(ji+1,jj-1,jk) * tsn(ji+1,jj-1,jk,jp_tem) ) 
    501493                      IF(lwp) WRITE(numout,*)                                 & 
    502494                     ' trc_bio_medusa: Abnormal T suroundings Sal' 
     
    532524                      IF(lwp) WRITE(numout,*)                                 & 
    533525                     tmask(ji-1,jj-1,jk), tmask(ji,jj-1,jk), tmask(ji+1,jj-1,jk) 
     526# endif 
     527                     !! Correct out of range values 
     528                     sumtsn = ( tmask(ji-1,jj+1,jk) * tsn(ji-1,jj+1,jk,jp_tem) ) + & 
     529                              ( tmask(ji  ,jj+1,jk) * tsn(ji  ,jj+1,jk,jp_tem) ) + & 
     530                              ( tmask(ji+1,jj+1,jk) * tsn(ji+1,jj+1,jk,jp_tem) ) + & 
     531                              ( tmask(ji-1,jj  ,jk) * tsn(ji-1,jj  ,jk,jp_tem) ) + & 
     532                              ( tmask(ji+1,jj  ,jk) * tsn(ji+1,jj  ,jk,jp_tem) ) + & 
     533                              ( tmask(ji-1,jj-1,jk) * tsn(ji-1,jj-1,jk,jp_tem) ) + & 
     534                              ( tmask(ji  ,jj-1,jk) * tsn(ji  ,jj-1,jk,jp_tem) ) + & 
     535                              ( tmask(ji+1,jj-1,jk) * tsn(ji+1,jj-1,jk,jp_tem) ) 
    534536                     summask = tmask(ji-1,jj+1,jk) + tmask(ji  ,jj+1,jk)   +  & 
    535537                               tmask(ji+1,jj+1,jk) + tmask(ji-1,jj  ,jk)   +  & 
    536                                tmask(ji+1,jj  ,jk) + tmask(ji-1,jj-1,jk)   +  &  
    537                                tmask(ji  ,jj-1,jk) + tmask(ji+1,jj-1,jk)  
     538                               tmask(ji+1,jj  ,jk) + tmask(ji-1,jj-1,jk)   +  & 
     539                               tmask(ji  ,jj-1,jk) + tmask(ji+1,jj-1,jk) 
    538540                     tsnavg = ( sumtsn / summask ) 
    539                      !! Correct out of range values 
     541                     !! 
    540542                     IF ( ( summask .EQ. 0.0 ) .OR. (tsnavg .LT. -3.0 ) .OR.   & 
    541543                          ( tsnavg .GT. 40.0 ) ) THEN     
    542544                        IF (ztmp(ji,jj) .LT. -3.0 ) THEN 
    543                            IF(lwp) WRITE(numout,*)                           & 
     545                           CALL ctl_warn(                                    & 
    544546                           ' trc_bio_medusa: T SWITCHING 3D, ',              & 
    545                            tsn(ji,jj,jk,jp_tem), ' -> -3.0 ' 
     547                           tsn(ji,jj,jk,jp_tem), ' -> -3.0 ' ) 
    546548                           ztmp(ji,jj) = -3.0 
    547549                        ENDIF 
    548550                        IF (ztmp(ji,jj) .GT. 40.0 ) THEN 
    549                            IF(lwp) WRITE(numout,*)                           & 
     551                           CALL ctl_warn(                                    & 
    550552                           ' trc_bio_medusa: T SWITCHING 3D, ',              & 
    551                            tsn(ji,jj,jk,jp_tem), ' -> 40.0 ' 
     553                           tsn(ji,jj,jk,jp_tem), ' -> 40.0 ' ) 
    552554                           ztmp(ji,jj) = 40.0 
    553555                        ENDIF 
    554556                     ELSE  
    555                         IF(lwp) WRITE(numout,*)                              & 
     557                        CALL ctl_warn(                                       & 
    556558                        ' trc_bio_medusa: T SWITCHING 3D, ',                 & 
    557                         tsn(ji,jj,jk,jp_tem), ' -> surounding avg : ', tsnavg 
     559                        tsn(ji,jj,jk,jp_tem), ' -> surounding avg : ', tsnavg ) 
    558560                        ztmp(ji,jj) = tsnavg 
    559561                     ENDIF 
     
    561563                  !! end T chack 
    562564                  if (zsal(ji,jj) .lt. 1.0 .or. zsal(ji,jj) .gt. 47.0 ) then 
    563                      IF(lwp) WRITE(numout,*)                                 & 
     565                        CALL ctl_warn(                                       & 
    564566                        ' trc_bio_medusa: S WARNING 2D, ',                   & 
    565                         tsb(ji,jj,jk,jp_sal), tsn(ji,jj,jk,jp_sal),          & 
    566                         ' at (', ji, ',', jj, ',', jk, ') at time', kt 
     567                        tsn(ji,jj,jk,jp_sal),                                & 
     568                        ' at I, J, K, kt : ', mig(ji), mjg(jj), jk, kt) 
    567569                     !! Correct out of range values 
    568570                     IF (zsal(ji,jj) .LT. 1.0 ) THEN 
    569                         IF(lwp) WRITE(numout,*)                              & 
     571                        CALL ctl_warn(                                       & 
    570572                        ' trc_bio_medusa: S SWITCHING 3D, ',                 & 
    571                         tsn(ji,jj,jk,jp_sal), ' -> 1.0 ' 
     573                        tsn(ji,jj,jk,jp_sal), ' -> 1.0 ') 
    572574                        zsal(ji,jj) = 1.0 
    573575                     ENDIF 
    574576                     IF (zsal(ji,jj) .GT. 47.0 ) THEN 
    575                         IF(lwp) WRITE(numout,*)                              & 
     577                        CALL ctl_warn(                                       & 
    576578                        ' trc_bio_medusa: T SWITCHING 3D, ',                 & 
    577                         tsn(ji,jj,jk,jp_sal), ' -> 47.0 ' 
     579                        tsn(ji,jj,jk,jp_sal), ' -> 47.0 ') 
    578580                        zsal(ji,jj) = 47.0 
    579581                     ENDIF 
Note: See TracChangeset for help on using the changeset viewer.