Changeset 12858
- Timestamp:
- 2020-05-03T11:04:27+02:00 (3 years ago)
- Location:
- NEMO/branches/2020/r12581_ticket2418
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r12581_ticket2418/src/OCE/stpctl.F90
r12856 r12858 248 248 INTEGER, INTENT(in ) :: kt, ksum, kmin, kmax 249 249 ! 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 255 256 !!---------------------------------------------------------------------- 256 257 WRITE(clkt , '(i9)') kt … … 268 269 cl4 = '(i'//clfmt//')' ; WRITE(clj, cl4) kloc(2) ! this is ok with AGRIF 269 270 ! 270 IF( ksum == 1 ) THEN ; WRITE(c dline,9100) TRIM(clmin)271 ELSE ; WRITE(c dline,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) 272 273 ENDIF 273 274 IF(kloc(3) == 0) THEN 274 275 ifmtk = INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 275 276 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(c dline)277 WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 277 278 ELSE 278 279 WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 279 280 !!! WRITE(clk, '(i'//clfmt//')') kloc(3) ! this is creating a compilation error with AGRIF 280 281 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(c dline)282 WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), TRIM(clk), TRIM(clsuff) 282 283 ENDIF 283 284 ! -
NEMO/branches/2020/r12581_ticket2418/src/SAS/stpctl.F90
r12856 r12858 208 208 INTEGER, INTENT(in ) :: kt, ksum, kmin, kmax 209 209 ! 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 215 216 !!---------------------------------------------------------------------- 216 217 WRITE(clkt , '(i9)') kt … … 228 229 cl4 = '(i'//clfmt//')' ; WRITE(clj, cl4) kloc(2) ! this is ok with AGRIF 229 230 ! 230 IF( ksum == 1 ) THEN ; WRITE(c dline,9100) TRIM(clmin)231 ELSE ; WRITE(c dline,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) 232 233 ENDIF 233 234 IF(kloc(3) == 0) THEN 234 235 ifmtk = INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 235 236 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(c dline)237 WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 237 238 ELSE 238 239 WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 239 240 !!! WRITE(clk, '(i'//clfmt//')') kloc(3) ! this is creating a compilation error with AGRIF 240 241 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(c dline)242 WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), TRIM(clk), TRIM(clsuff) 242 243 ENDIF 243 244 ! -
NEMO/branches/2020/r12581_ticket2418/tests/CANAL/MY_SRC/stpctl.F90
r12856 r12858 185 185 CALL mpp_maxloc( 'stpctl', ABS(ssh(:,:, Kmm)), ssmask(:,: ), zzz, iloc(1:2,1) ) ! mpp_maxloc ok if mask = F 186 186 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) ) 189 189 ! find which subdomain has the max. 190 190 iareamin(:) = jpnij+1 ; iareamax(:) = 0 ; iareasum(:) = 0 … … 201 201 iloc(1:2,1) = MAXLOC( ABS( ssh(:,:, Kmm)), mask = ssmask(:,: ) == 1._wp ) + (/ nimpp - 1, njmpp - 1 /) 202 202 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 /) 205 205 iareamin(:) = narea ; iareamax(:) = narea ; iareasum(:) = 1 ! this is local information 206 206 ENDIF 207 207 ! 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' 209 209 CALL wrt_line( ctmp2, kt, '|ssh| max', zmax(1), iloc(:,1), iareasum(1), iareamin(1), iareamax(1) ) 210 210 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) ) 213 213 IF( Agrif_Root() ) THEN 214 214 WRITE(ctmp6,*) ' ===> output of last computed fields in output.abort* files' … … 220 220 ! 221 221 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 ) 223 223 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 ) 225 225 ENDIF 226 226 ! … … 248 248 INTEGER, INTENT(in ) :: kt, ksum, kmin, kmax 249 249 ! 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 255 256 !!---------------------------------------------------------------------- 256 257 WRITE(clkt , '(i9)') kt … … 268 269 cl4 = '(i'//clfmt//')' ; WRITE(clj, cl4) kloc(2) ! this is ok with AGRIF 269 270 ! 270 IF( ksum == 1 ) THEN ; WRITE(c dline,9100) TRIM(clmin)271 ELSE ; WRITE(c dline,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) 272 273 ENDIF 273 274 IF(kloc(3) == 0) THEN 274 275 ifmtk = INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 275 276 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(c dline)277 WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 277 278 ELSE 278 279 WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 279 280 !!! WRITE(clk, '(i'//clfmt//')') kloc(3) ! this is creating a compilation error with AGRIF 280 281 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(c dline)282 WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), TRIM(clk), TRIM(clsuff) 282 283 ENDIF 283 284 ! -
NEMO/branches/2020/r12581_ticket2418/tests/STATION_ASF/MY_SRC/stpctl.F90
r12856 r12858 207 207 INTEGER, INTENT(in ) :: kt, ksum, kmin, kmax 208 208 ! 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 214 215 !!---------------------------------------------------------------------- 215 216 WRITE(clkt , '(i9)') kt … … 227 228 cl4 = '(i'//clfmt//')' ; WRITE(clj, cl4) kloc(2) ! this is ok with AGRIF 228 229 ! 229 IF( ksum == 1 ) THEN ; WRITE(c dline,9100) TRIM(clmin)230 ELSE ; WRITE(c dline,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) 231 232 ENDIF 232 233 IF(kloc(3) == 0) THEN 233 234 ifmtk = INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 234 235 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(c dline)236 WRITE(cdline,9300) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), clk(1:ifmtk), TRIM(clsuff) 236 237 ELSE 237 238 WRITE(clfmt, '(i1)') INT(LOG10(REAL(jpk,wp))) + 1 ! how many digits to we need to write jpk? (we decide max = 9) 238 239 !!! WRITE(clk, '(i'//clfmt//')') kloc(3) ! this is creating a compilation error with AGRIF 239 240 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(c dline)241 WRITE(cdline,9400) TRIM(ADJUSTL(clkt)), TRIM(ADJUSTL(cdprefix)), pval, TRIM(cli), TRIM(clj), TRIM(clk), TRIM(clsuff) 241 242 ENDIF 242 243 !
Note: See TracChangeset
for help on using the changeset viewer.