- Timestamp:
- 2020-03-13T17:33:02+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_starthour_obsoper/NEMOGCM/NEMO/OPA_SRC/stpctl.F90
r9276 r12555 61 61 ! values and warn if they're out of Range 62 62 INTEGER, DIMENSION(3) :: ilocu ! 63 INTEGER, DIMENSION(2) :: ilocs ! 63 INTEGER, DIMENSION(2) :: ilocs ! 64 LOGICAL :: ll_wrtstp, ll_colruns, ll_wrtruns 64 65 !!---------------------------------------------------------------------- 65 66 ll_wrtstp = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend ) 67 ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR. sn_cfctl%l_runstat ) 68 ll_wrtruns = ll_colruns .AND. lwm 66 69 IF( kt == nit000 .AND. lwp ) THEN 67 70 WRITE(numout,*) 68 71 WRITE(numout,*) 'stp_ctl : time-stepping control' 69 72 WRITE(numout,*) '~~~~~~~' 73 IF(lflush) CALL flush(numout) 70 74 ! open time.step file with special treatment for SAS 71 75 IF ( nn_components == jp_iam_sas ) THEN … … 74 78 clfname = 'time.step' 75 79 ENDIF 76 CALL ctl_opn( numstp, TRIM(clfname), 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 77 ENDIF 78 79 IF(lwp) WRITE ( numstp, '(1x, i8)' ) kt !* save the current time step in numstp 80 IF(lwp) REWIND( numstp ) ! -------------------------- 80 IF( lwm ) & 81 & CALL ctl_opn( numstp, TRIM(clfname), 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 82 ENDIF 83 84 IF(lwm .AND. ll_wrtstp) THEN 85 WRITE ( numstp, '(1x, i8)' ) kt !* save the current time step in numstp 86 REWIND( numstp ) ! -------------------------- 87 ENDIF 81 88 82 89 ! !* Test maximum of velocity (zonal only) … … 93 100 IF( lk_mpp ) CALL mpp_max( zumax ) ! max over the global domain 94 101 ! 95 IF( MOD( kt, nwrite ) == 1 .AND. lwp ) WRITE(numout,*) ' ==>> time-step= ',kt,' abs(U) max: ', zumax 102 IF( ll_colruns ) THEN 103 WRITE(numout,*) ' ==>> time-step= ',kt,' abs(U) max: ', zumax 104 IF(lflush) CALL flush(numout) 105 ENDIF 96 106 ! 97 107 IF( zumax > 20.e0 ) THEN … … 111 121 WRITE(numout,*) 112 122 WRITE(numout,*) ' output of last fields in numwso' 123 IF(lflush) CALL flush(numout) 113 124 ENDIF 114 125 kindic = -3 … … 127 138 IF( lk_mpp ) CALL mpp_min( zsmin ) ! min over the global domain 128 139 ! 129 IF( MOD( kt, nwrite ) == 1 .AND. lwp ) WRITE(numout,*) ' ==>> time-step= ',kt,' SSS min:', zsmin 140 IF( MOD( kt, nwrite ) == 1 .AND. lwp ) THEN 141 WRITE(numout,*) ' ==>> time-step= ',kt,' SSS min:', zsmin 142 IF(lflush) CALL flush(numout) 143 ENDIF 130 144 ! 131 145 IF( zsmin < 0.) THEN … … 182 196 WRITE(numout,9600) kt, ztmax, ii, ij 183 197 WRITE(numout,*) 'stp_ctl:tracer anomaly: ***** END OF WARNING *****' 198 IF(lflush) CALL flush(numout) 184 199 ENDIF 185 200 ENDIF … … 199 214 WRITE(numout,9700) kt, ztmin, ii, ij 200 215 WRITE(numout,*) 'stp_ctl:tracer anomaly: ***** END OF WARNING *****' 216 IF(lflush) CALL flush(numout) 201 217 ENDIF 202 218 ENDIF … … 212 228 IF( lk_dynspg_flt ) THEN ! elliptic solver statistics (if required) 213 229 ! 214 IF(lwp) WRITE(numsol,9200) kt, niter, res, SQRT(epsr)/eps ! Solver 230 IF(ll_wrtruns) THEN 231 WRITE(numsol,9200) kt, niter, res, SQRT(epsr)/eps ! Solver 232 IF(lflush) CALL flush(numsol) 233 ENDIF 215 234 ! 216 235 IF( kindic < 0 .AND. zsmin > 0.e0 .AND. zumax <= 20.e0 ) THEN ! create a abort file if problem found … … 222 241 WRITE(numout,*) ' stpctl: output of last fields' 223 242 WRITE(numout,*) ' ====== ' 243 IF(lflush) CALL flush(numout) 224 244 ENDIF 225 245 ENDIF 226 246 ! 227 247 ELSE !* ssh statistics (and others...) 228 IF( kt == nit000 .AND. lw p) THEN ! open ssh statistics file (put in solver.stat file)248 IF( kt == nit000 .AND. lwm ) THEN ! open ssh statistics file (put in solver.stat file) 229 249 CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 230 250 ENDIF 231 251 ! 232 zssh2 = SUM( sshn(:,:) * sshn(:,:) * tmask_i(:,:) ) 233 IF( lk_mpp ) CALL mpp_sum( zssh2 ) ! sum over the global domain 234 ! 235 IF(lwp) WRITE(numsol,9300) kt, zssh2, zumax, zsmin ! ssh statistics 252 IF( ll_colruns ) THEN 253 zssh2 = SUM( sshn(:,:) * sshn(:,:) * tmask_i(:,:) ) 254 IF( lk_mpp ) CALL mpp_sum( zssh2 ) ! sum over the global domain 255 ! 256 WRITE(numsol,9300) kt, zssh2, zumax, zsmin ! ssh statistics 257 IF(lflush) CALL flush(numsol) 258 ENDIF 236 259 ! 237 260 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.