Changeset 12858


Ignore:
Timestamp:
2020-05-03T11:04:27+02:00 (7 months ago)
Author:
smasson
Message:

r12581_ticket2418: bugfix not seen on X64_IRENE, see #2418

Location:
NEMO/branches/2020/r12581_ticket2418
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/r12581_ticket2418/src/OCE/stpctl.F90

    r12856 r12858  
    248248      INTEGER,               INTENT(in   ) ::   kt, ksum, kmin, kmax 
    249249      ! 
    250       CHARACTER(len=9) ::   clkt, clsum, clmin, clmax 
    251       CHARACTER(len=9) ::   cli, clj, clk 
    252       CHARACTER(len=1) ::   clfmt 
    253       CHARACTER(len=4) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
    254       INTEGER          ::   ifmtk 
     250      CHARACTER(len=80) ::   clsuff 
     251      CHARACTER(len=9 ) ::   clkt, clsum, clmin, clmax 
     252      CHARACTER(len=9 ) ::   cli, clj, clk 
     253      CHARACTER(len=1 ) ::   clfmt 
     254      CHARACTER(len=4 ) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
     255      INTEGER           ::   ifmtk 
    255256      !!---------------------------------------------------------------------- 
    256257      WRITE(clkt , '(i9)') kt 
     
    268269      cl4 = '(i'//clfmt//')'   ;   WRITE(clj, cl4) kloc(2)      ! this is ok with AGRIF 
    269270      ! 
    270       IF( ksum == 1 ) THEN   ;   WRITE(cdline,9100) TRIM(clmin) 
    271       ELSE                   ;   WRITE(cdline,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
     271      IF( ksum == 1 ) THEN   ;   WRITE(clsuff,9100) TRIM(clmin) 
     272      ELSE                   ;   WRITE(clsuff,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
    272273      ENDIF 
    273274      IF(kloc(3) == 0) THEN 
    274275         ifmtk = INT(LOG10(REAL(jpk,wp))) + 1                   ! how many digits to we need to write jpk? (we decide max = 9) 
    275276         clk = REPEAT(' ', ifmtk)                               ! create the equivalent in blank string 
    276          WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(cdline) 
     277         WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 
    277278      ELSE 
    278279         WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1      ! how many digits to we need to write jpk? (we decide max = 9) 
    279280         !!! WRITE(clk, '(i'//clfmt//')') kloc(3)               ! this is creating a compilation error with AGRIF 
    280281         cl4 = '(i'//clfmt//')'   ;   WRITE(clk, cl4) kloc(3)   ! this is ok with AGRIF 
    281          WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(cdline) 
     282         WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(clsuff) 
    282283      ENDIF 
    283284      ! 
  • NEMO/branches/2020/r12581_ticket2418/src/SAS/stpctl.F90

    r12856 r12858  
    208208      INTEGER,               INTENT(in   ) ::   kt, ksum, kmin, kmax 
    209209      ! 
    210       CHARACTER(len=9) ::   clkt, clsum, clmin, clmax 
    211       CHARACTER(len=9) ::   cli, clj, clk 
    212       CHARACTER(len=1) ::   clfmt 
    213       CHARACTER(len=4) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
    214       INTEGER          ::   ifmtk 
     210      CHARACTER(len=80) ::   clsuff 
     211      CHARACTER(len=9 ) ::   clkt, clsum, clmin, clmax 
     212      CHARACTER(len=9 ) ::   cli, clj, clk 
     213      CHARACTER(len=1 ) ::   clfmt 
     214      CHARACTER(len=4 ) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
     215      INTEGER           ::   ifmtk 
    215216      !!---------------------------------------------------------------------- 
    216217      WRITE(clkt , '(i9)') kt 
     
    228229      cl4 = '(i'//clfmt//')'   ;   WRITE(clj, cl4) kloc(2)      ! this is ok with AGRIF 
    229230      ! 
    230       IF( ksum == 1 ) THEN   ;   WRITE(cdline,9100) TRIM(clmin) 
    231       ELSE                   ;   WRITE(cdline,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
     231      IF( ksum == 1 ) THEN   ;   WRITE(clsuff,9100) TRIM(clmin) 
     232      ELSE                   ;   WRITE(clsuff,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
    232233      ENDIF 
    233234      IF(kloc(3) == 0) THEN 
    234235         ifmtk = INT(LOG10(REAL(jpk,wp))) + 1                   ! how many digits to we need to write jpk? (we decide max = 9) 
    235236         clk = REPEAT(' ', ifmtk)                               ! create the equivalent in blank string 
    236          WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(cdline) 
     237         WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 
    237238      ELSE 
    238239         WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1      ! how many digits to we need to write jpk? (we decide max = 9) 
    239240         !!! WRITE(clk, '(i'//clfmt//')') kloc(3)               ! this is creating a compilation error with AGRIF 
    240241         cl4 = '(i'//clfmt//')'   ;   WRITE(clk, cl4) kloc(3)   ! this is ok with AGRIF 
    241          WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(cdline) 
     242         WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(clsuff) 
    242243      ENDIF 
    243244      ! 
  • NEMO/branches/2020/r12581_ticket2418/tests/CANAL/MY_SRC/stpctl.F90

    r12856 r12858  
    185185            CALL mpp_maxloc( 'stpctl', ABS(ssh(:,:,         Kmm)), ssmask(:,:  ), zzz, iloc(1:2,1) )   ! mpp_maxloc ok if mask = F  
    186186            CALL mpp_maxloc( 'stpctl', ABS( uu(:,:,:,       Kmm)),  umask(:,:,:), zzz, iloc(1:3,2) ) 
    187 !!$            CALL mpp_minloc( 'stpctl',      ts(:,:,:,jp_sal,Kmm) ,  tmask(:,:,:), zzz, iloc(1:3,3) ) 
    188 !!$            CALL mpp_maxloc( 'stpctl',      ts(:,:,:,jp_sal,Kmm) ,  tmask(:,:,:), zzz, iloc(1:3,4) ) 
     187            CALL mpp_minloc( 'stpctl',      ts(:,:,:,jp_sal,Kmm) ,  tmask(:,:,:), zzz, iloc(1:3,3) ) 
     188            CALL mpp_maxloc( 'stpctl',      ts(:,:,:,jp_sal,Kmm) ,  tmask(:,:,:), zzz, iloc(1:3,4) ) 
    189189            ! find which subdomain has the max. 
    190190            iareamin(:) = jpnij+1   ;   iareamax(:) = 0   ;   iareasum(:) = 0 
     
    201201            iloc(1:2,1) = MAXLOC( ABS( ssh(:,:,         Kmm)), mask = ssmask(:,:  ) == 1._wp ) + (/ nimpp - 1, njmpp - 1    /) 
    202202            iloc(1:3,2) = MAXLOC( ABS(  uu(:,:,:,       Kmm)), mask =  umask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    203 !!$            iloc(1:3,3) = MINLOC(       ts(:,:,:,jp_sal,Kmm) , mask =  tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    204 !!$            iloc(1:3,4) = MAXLOC(       ts(:,:,:,jp_sal,Kmm) , mask =  tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
     203            iloc(1:3,3) = MINLOC(       ts(:,:,:,jp_sal,Kmm) , mask =  tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
     204            iloc(1:3,4) = MAXLOC(       ts(:,:,:,jp_sal,Kmm) , mask =  tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    205205            iareamin(:) = narea   ;   iareamax(:) = narea   ;   iareasum(:) = 1         ! this is local information 
    206206         ENDIF 
    207207         ! 
    208          WRITE(ctmp1,*) ' stp_ctl: |ssh| > 20 m  or  |U| > 10 m/s or  NaN encounter in the tests' 
     208         WRITE(ctmp1,*) ' stp_ctl: |ssh| > 20 m  or  |U| > 10 m/s  or  S <= 0  or  S >= 100  or  NaN encounter in the tests' 
    209209         CALL wrt_line( ctmp2, kt, '|ssh| max',  zmax(1), iloc(:,1), iareasum(1), iareamin(1), iareamax(1) ) 
    210210         CALL wrt_line( ctmp3, kt, '|U|   max',  zmax(2), iloc(:,2), iareasum(2), iareamin(2), iareamax(2) ) 
    211 !!$         CALL wrt_line( ctmp4, kt, 'Sal   min', -zmax(3), iloc(:,3), iareasum(3), iareamin(3), iareamax(3) ) 
    212 !!$         CALL wrt_line( ctmp5, kt, 'Sal   max',  zmax(4), iloc(:,4), iareasum(4), iareamin(4), iareamax(4) ) 
     211         CALL wrt_line( ctmp4, kt, 'Sal   min', -zmax(3), iloc(:,3), iareasum(3), iareamin(3), iareamax(3) ) 
     212         CALL wrt_line( ctmp5, kt, 'Sal   max',  zmax(4), iloc(:,4), iareasum(4), iareamin(4), iareamax(4) ) 
    213213         IF( Agrif_Root() ) THEN 
    214214            WRITE(ctmp6,*) '      ===> output of last computed fields in output.abort* files' 
     
    220220         ! 
    221221         IF( ll_colruns .or. jpnij == 1 ) THEN   ! all processes synchronized -> use lwp to print in opened ocean.output files 
    222             IF(lwp)   CALL ctl_stop( ctmp1, ' ', ctmp2, ctmp3, ' ', ctmp6 ) 
     222            IF(lwp)   CALL ctl_stop( ctmp1, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ' ', ctmp6 ) 
    223223         ELSE                                    ! only mpi subdomains with errors are here -> STOP now 
    224             CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp2, ctmp3, ' ', ctmp6 ) 
     224            CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ' ', ctmp6 ) 
    225225         ENDIF 
    226226         ! 
     
    248248      INTEGER,               INTENT(in   ) ::   kt, ksum, kmin, kmax 
    249249      ! 
    250       CHARACTER(len=9) ::   clkt, clsum, clmin, clmax 
    251       CHARACTER(len=9) ::   cli, clj, clk 
    252       CHARACTER(len=1) ::   clfmt 
    253       CHARACTER(len=4) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
    254       INTEGER          ::   ifmtk 
     250      CHARACTER(len=80) ::   clsuff 
     251      CHARACTER(len=9 ) ::   clkt, clsum, clmin, clmax 
     252      CHARACTER(len=9 ) ::   cli, clj, clk 
     253      CHARACTER(len=1 ) ::   clfmt 
     254      CHARACTER(len=4 ) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
     255      INTEGER           ::   ifmtk 
    255256      !!---------------------------------------------------------------------- 
    256257      WRITE(clkt , '(i9)') kt 
     
    268269      cl4 = '(i'//clfmt//')'   ;   WRITE(clj, cl4) kloc(2)      ! this is ok with AGRIF 
    269270      ! 
    270       IF( ksum == 1 ) THEN   ;   WRITE(cdline,9100) TRIM(clmin) 
    271       ELSE                   ;   WRITE(cdline,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
     271      IF( ksum == 1 ) THEN   ;   WRITE(clsuff,9100) TRIM(clmin) 
     272      ELSE                   ;   WRITE(clsuff,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
    272273      ENDIF 
    273274      IF(kloc(3) == 0) THEN 
    274275         ifmtk = INT(LOG10(REAL(jpk,wp))) + 1                   ! how many digits to we need to write jpk? (we decide max = 9) 
    275276         clk = REPEAT(' ', ifmtk)                               ! create the equivalent in blank string 
    276          WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(cdline) 
     277         WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 
    277278      ELSE 
    278279         WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1      ! how many digits to we need to write jpk? (we decide max = 9) 
    279280         !!! WRITE(clk, '(i'//clfmt//')') kloc(3)               ! this is creating a compilation error with AGRIF 
    280281         cl4 = '(i'//clfmt//')'   ;   WRITE(clk, cl4) kloc(3)   ! this is ok with AGRIF 
    281          WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(cdline) 
     282         WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(clsuff) 
    282283      ENDIF 
    283284      ! 
  • NEMO/branches/2020/r12581_ticket2418/tests/STATION_ASF/MY_SRC/stpctl.F90

    r12856 r12858  
    207207      INTEGER,               INTENT(in   ) ::   kt, ksum, kmin, kmax 
    208208      ! 
    209       CHARACTER(len=9) ::   clkt, clsum, clmin, clmax 
    210       CHARACTER(len=9) ::   cli, clj, clk 
    211       CHARACTER(len=1) ::   clfmt 
    212       CHARACTER(len=4) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
    213       INTEGER          ::   ifmtk 
     209      CHARACTER(len=80) ::   clsuff 
     210      CHARACTER(len=9 ) ::   clkt, clsum, clmin, clmax 
     211      CHARACTER(len=9 ) ::   cli, clj, clk 
     212      CHARACTER(len=1 ) ::   clfmt 
     213      CHARACTER(len=4 ) ::   cl4   ! needed to be able to compile with Agrif, I don't know why 
     214      INTEGER           ::   ifmtk 
    214215      !!---------------------------------------------------------------------- 
    215216      WRITE(clkt , '(i9)') kt 
     
    227228      cl4 = '(i'//clfmt//')'   ;   WRITE(clj, cl4) kloc(2)      ! this is ok with AGRIF 
    228229      ! 
    229       IF( ksum == 1 ) THEN   ;   WRITE(cdline,9100) TRIM(clmin) 
    230       ELSE                   ;   WRITE(cdline,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
     230      IF( ksum == 1 ) THEN   ;   WRITE(clsuff,9100) TRIM(clmin) 
     231      ELSE                   ;   WRITE(clsuff,9200) TRIM(clsum), TRIM(clmin), TRIM(clmax) 
    231232      ENDIF 
    232233      IF(kloc(3) == 0) THEN 
    233234         ifmtk = INT(LOG10(REAL(jpk,wp))) + 1                   ! how many digits to we need to write jpk? (we decide max = 9) 
    234235         clk = REPEAT(' ', ifmtk)                               ! create the equivalent in blank string 
    235          WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(cdline) 
     236         WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 
    236237      ELSE 
    237238         WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1      ! how many digits to we need to write jpk? (we decide max = 9) 
    238239         !!! WRITE(clk, '(i'//clfmt//')') kloc(3)               ! this is creating a compilation error with AGRIF 
    239240         cl4 = '(i'//clfmt//')'   ;   WRITE(clk, cl4) kloc(3)   ! this is ok with AGRIF 
    240          WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(cdline) 
     241         WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj),    TRIM(clk), TRIM(clsuff) 
    241242      ENDIF 
    242243      ! 
Note: See TracChangeset for help on using the changeset viewer.