- Timestamp:
- 2020-12-02T14:55:21+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Property svn:externals
-
old new 8 8 9 9 # SETTE 10 ^/utils/CI/sette@13 292sette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/SWE/stpctl.F90
r13604 r13998 31 31 INTEGER :: nrunid ! netcdf file id 32 32 INTEGER, DIMENSION(2) :: nvarid ! netcdf variable id 33 !!SWE INTEGER, DIMENSION(8) :: nvarid ! netcdf variable id34 33 35 34 # include "domzgr_substitute.h90" 36 35 !!---------------------------------------------------------------------- 37 36 !! NEMO/OCE 4.0 , NEMO Consortium (2018) 38 !! $Id: stpctl.F90 1 2614 2020-03-26 14:59:52Z gm$37 !! $Id: stpctl.F90 13216 2020-07-02 09:25:49Z rblod $ 39 38 !! Software governed by the CeCILL license (see ./LICENSE) 40 39 !!---------------------------------------------------------------------- … … 63 62 INTEGER :: ji ! dummy loop indices 64 63 INTEGER :: idtime, istatus 65 !!SWE INTEGER , DIMENSION(9) :: iareasum, iareamin, iareamax66 64 INTEGER , DIMENSION(3) :: iareasum, iareamin, iareamax 67 65 INTEGER , DIMENSION(3,4) :: iloc ! min/max loc indices 68 66 REAL(wp) :: zzz ! local real 69 !!SWE REAL(wp), DIMENSION(9) :: zmax, zmaxlocal70 67 REAL(wp), DIMENSION(3) :: zmax, zmaxlocal 71 68 LOGICAL :: ll_wrtstp, ll_colruns, ll_wrtruns … … 73 70 CHARACTER(len=20) :: clname 74 71 !!---------------------------------------------------------------------- 72 IF( nstop > 0 .AND. ngrdstop > -1 ) RETURN ! stpctl was already called by a child grid 75 73 ! 76 74 IF( nstop > 0 .AND. ngrdstop > -1 ) RETURN ! stpctl was already called by a child grid … … 100 98 istatus = NF90_DEF_VAR( nrunid, 'abs_ssh_max', NF90_DOUBLE, (/ idtime /), nvarid(1) ) 101 99 istatus = NF90_DEF_VAR( nrunid, 'abs_u_max', NF90_DOUBLE, (/ idtime /), nvarid(2) ) 102 !!SWE istatus = NF90_DEF_VAR( nrunid, 's_min', NF90_DOUBLE, (/ idtime /), nvarid(3) )103 !!SWE istatus = NF90_DEF_VAR( nrunid, 's_max', NF90_DOUBLE, (/ idtime /), nvarid(4) )104 !!SWE istatus = NF90_DEF_VAR( nrunid, 't_min', NF90_DOUBLE, (/ idtime /), nvarid(5) )105 !!SWE istatus = NF90_DEF_VAR( nrunid, 't_max', NF90_DOUBLE, (/ idtime /), nvarid(6) )106 !!SWE IF( ln_zad_Aimp ) THEN107 !!SWE istatus = NF90_DEF_VAR( nrunid, 'Cf_max', NF90_DOUBLE, (/ idtime /), nvarid(7) )108 !!SWE istatus = NF90_DEF_VAR( nrunid,'abs_wi_max',NF90_DOUBLE, (/ idtime /), nvarid(8) )109 !!SWE ENDIF110 100 istatus = NF90_ENDDEF(nrunid) 111 101 ENDIF … … 121 111 ! !== test of local extrema ==! 122 112 ! !== done by all processes at every time step ==! 123 !!SWE llmsk(:,:,1) = ssmask(:,:) == 1._wp124 !!SWE IF( ll_wd ) THEN125 !!SWE zmax(1) = MAXVAL( ABS( ssh(:,:,Kmm) + ssh_ref ), mask = llmsk(:,:,1) ) ! ssh max126 !!SWE ELSE127 !!SWE zmax(1) = MAXVAL( ABS( ssh(:,:,Kmm) ), mask = llmsk(:,:,1) ) ! ssh max128 !!SWE ENDIF129 113 zmax(1) = MINVAL( e3t_0(:,:,1)+ssh(:,:,Kmm) ) ! e3t_Kmm min 130 !!SWE131 114 llmsk(:,:,:) = umask(:,:,:) == 1._wp 132 115 zmax(2) = MAXVAL( ABS( uu(:,:,:,Kmm) ), mask = llmsk ) ! velocity max (zonal only) 133 !!SWE llmsk(:,:,:) = tmask(:,:,:) == 1._wp134 !!SWE zmax(3) = MAXVAL( -ts(:,:,:,jp_sal,Kmm), mask = llmsk ) ! minus salinity max135 !!SWE zmax(4) = MAXVAL( ts(:,:,:,jp_sal,Kmm), mask = llmsk ) ! salinity max136 !!SWE IF( ll_colruns .OR. jpnij == 1 ) THEN ! following variables are used only in the netcdf file137 !!SWE zmax(5) = MAXVAL( -ts(:,:,:,jp_tem,Kmm), mask = llmsk ) ! minus temperature max138 !!SWE zmax(6) = MAXVAL( ts(:,:,:,jp_tem,Kmm), mask = llmsk ) ! temperature max139 !!SWE IF( ln_zad_Aimp ) THEN140 !!SWE zmax(7) = MAXVAL( Cu_adv(:,:,:) , mask = llmsk ) ! partitioning coeff. max141 !!SWE llmsk(:,:,:) = wmask(:,:,:) == 1._wp142 !!SWE zmax(8) = MAXVAL( ABS( wi(:,:,:) ) , mask = llmsk ) ! implicit vertical vel. max143 !!SWE ELSE144 !!SWE zmax(7:8) = 0._wp145 !!SWE ENDIF146 !!SWE ELSE147 !!SWE zmax(5:8) = 0._wp148 !!SWE ENDIF149 !!SWE zmax(9) = REAL( nstop, wp ) ! stop indicator150 !!SWE151 116 zmax(3) = REAL( nstop , wp ) ! stop indicator 152 !!SWE 117 ! !== get global extrema ==! 118 ! !== done by all processes if writting run.stat ==! 119 llmsk(Nis0:Nie0,Njs0:Nje0,1) = tmask(Nis0:Nie0,Njs0:Nje0,1) == 1._wp ! define only the inner domain 120 zmax(1) = MAXVAL( -e3t(:,:,1,Kmm) ), mask = llmsk(:,:,1) ) ! ssh max 121 llmsk(Nis0:Nie0,Njs0:Nje0,:) = umask(Nis0:Nie0,Njs0:Nje0,:) == 1._wp ! define only the inner domain 122 zmax(2) = MAXVAL( ABS( uu(:,:,:,Kmm) ), mask = llmsk(:,:,:) ) ! velocity max (zonal only) 123 zmax(3) = REAL( nstop, wp ) ! stop indicator 153 124 ! !== get global extrema ==! 154 125 ! !== done by all processes if writting run.stat ==! … … 156 127 zmaxlocal(:) = zmax(:) 157 128 CALL mpp_max( "stpctl", zmax ) ! max over the global domain 158 !!SWE nstop = NINT( zmax(9) ) ! update nstop indicator (now sheared among all local domains)159 129 nstop = NINT( zmax(3) ) ! update nstop indicator (now sheared among all local domains) 160 130 ENDIF … … 162 132 ! !== done only by 1st subdomain at writting timestep ==! 163 133 IF( ll_wrtruns ) THEN 164 !!SWE WRITE(numrun,9500) kt, zmax(1), zmax(2), -zmax(3), zmax(4)165 134 WRITE(numrun,9500) kt, zmax(1), zmax(2) 166 135 istatus = NF90_PUT_VAR( nrunid, nvarid(1), (/ zmax(1)/), (/kt/), (/1/) ) 167 136 istatus = NF90_PUT_VAR( nrunid, nvarid(2), (/ zmax(2)/), (/kt/), (/1/) ) 168 !!SWE istatus = NF90_PUT_VAR( nrunid, nvarid(3), (/-zmax(3)/), (/kt/), (/1/) )169 !!SWE istatus = NF90_PUT_VAR( nrunid, nvarid(4), (/ zmax(4)/), (/kt/), (/1/) )170 !!SWE istatus = NF90_PUT_VAR( nrunid, nvarid(5), (/-zmax(5)/), (/kt/), (/1/) )171 !!SWE istatus = NF90_PUT_VAR( nrunid, nvarid(6), (/ zmax(6)/), (/kt/), (/1/) )172 !!SWE IF( ln_zad_Aimp ) THEN173 !!SWE istatus = NF90_PUT_VAR( nrunid, nvarid(7), (/ zmax(7)/), (/kt/), (/1/) )174 !!SWE istatus = NF90_PUT_VAR( nrunid, nvarid(8), (/ zmax(8)/), (/kt/), (/1/) )175 !!SWE ENDIF176 137 IF( kt == nitend ) istatus = NF90_CLOSE(nrunid) 177 138 ENDIF … … 236 197 ENDIF 237 198 ! 238 !!SWE 9500 FORMAT(' it :', i8, ' |ssh|_max: ', D23.16, ' |U|_max: ', D23.16,' S_min: ', D23.16,' S_max: ', D23.16)239 199 9500 FORMAT(' it :', i8, ' e3t_min: ', D23.16, ' |U|_max: ', D23.16) 240 200 !
Note: See TracChangeset
for help on using the changeset viewer.