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 9073 for branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_8356/NEMOGCM/NEMO/OPA_SRC/stpctl.F90 – NEMO

Ignore:
Timestamp:
2017-12-15T12:48:47+01:00 (6 years ago)
Author:
jpalmier
Message:

add all micro boil checks and securities

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_8356/NEMOGCM/NEMO/OPA_SRC/stpctl.F90

    r6487 r9073  
    5858      INTEGER  ::   ii, ij, ik              ! temporary integers 
    5959      REAL(wp) ::   zumax, zsmin, zssh2     ! temporary scalars 
     60      REAL(wp) ::   ztmax, ztmin            ! temporary scalars 
    6061      INTEGER, DIMENSION(3) ::   ilocu      !  
    6162      INTEGER, DIMENSION(2) ::   ilocs      !  
     
    1481499500  FORMAT (' kt=',i6,' min SSS: ',1pg11.4,', i j: ',2i5) 
    149150 
     151! ==================================================================================================== 
     152! ==================================================================================================== 
     153      !                                              !AXY (25/10/17) 
     154      !                                              !* Test max/min limits of temperature 
     155      !                                              !  ---------------------------------- 
     156      ztmax =  -5.e0  ! arbitrary  low maximum value 
     157      ztmin = 100.e0  ! arbitrary high minimum value 
     158      DO jj = 2, jpjm1 
     159         DO ji = 1, jpi 
     160            IF( tmask(ji,jj,1) == 1) THEN 
     161               ztmax = MAX(ztmax,tsn(ji,jj,1,jp_tem))     ! find local maximum 
     162               ztmin = MIN(ztmin,tsn(ji,jj,1,jp_tem))     ! find local minimum 
     163            ENDIF 
     164         END DO 
     165      END DO 
     166      IF( lk_mpp )   CALL mpp_max( ztmax )                ! max over the global domain 
     167      IF( lk_mpp )   CALL mpp_min( ztmin )                ! min over the global domain 
     168      ! 
     169      IF( ztmax > 40.) THEN  ! we've got a problem 
     170         IF (lk_mpp) THEN 
     171            CALL mpp_maxloc ( tsn(:,:,1,jp_tem),tmask(:,:,1), ztmax, ii,ij ) 
     172         ELSE 
     173            ilocs = MAXLOC( tsn(:,:,1,jp_tem), mask = tmask(:,:,1) == 1.e0 ) 
     174            ii = ilocs(1) + nimpp - 1 
     175            ij = ilocs(2) + njmpp - 1 
     176         ENDIF 
     177         ! 
     178         IF(lwp) THEN 
     179            WRITE(numout,*) 'stp_ctl:tracer anomaly: *****    WARNING     *****' 
     180            WRITE(numout,*) 'stp_ctl:tracer anomaly: sea surface temperature > 40C' 
     181            WRITE(numout,9600) kt, ztmax, ii, ij 
     182            WRITE(numout,*) 'stp_ctl:tracer anomaly: ***** END OF WARNING *****' 
     183         ENDIF 
     184      ENDIF 
     185      ! 
     186      IF( ztmin < -3.) THEN  ! we've got a problem 
     187         IF (lk_mpp) THEN 
     188            CALL mpp_minloc ( tsn(:,:,1,jp_tem),tmask(:,:,1), ztmin, ii,ij ) 
     189         ELSE 
     190            ilocs = MINLOC( tsn(:,:,1,jp_tem), mask = tmask(:,:,1) == 1.e0 ) 
     191            ii = ilocs(1) + nimpp - 1 
     192            ij = ilocs(2) + njmpp - 1 
     193         ENDIF 
     194         ! 
     195         IF(lwp) THEN 
     196            WRITE(numout,*) 'stp_ctl:tracer anomaly: *****    WARNING     *****' 
     197            WRITE(numout,*) 'stp_ctl:tracer anomaly: sea surface temperature < -3C' 
     198            WRITE(numout,9700) kt, ztmin, ii, ij 
     199            WRITE(numout,*) 'stp_ctl:tracer anomaly: ***** END OF WARNING *****' 
     200         ENDIF 
     201      ENDIF 
     2029600  FORMAT ('stp_ctl:tracer anomaly: kt=',i6,' max SST: ',f16.10,', i j: ',2i5) 
     2039700  FORMAT ('stp_ctl:tracer anomaly: kt=',i6,' min SST: ',f16.10,', i j: ',2i5) 
     204! ==================================================================================================== 
     205! ==================================================================================================== 
    150206       
    151207      IF( lk_c1d )  RETURN          ! No log file in case of 1D vertical configuration 
Note: See TracChangeset for help on using the changeset viewer.