Changeset 13632 for NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/tests/STATION_ASF/MY_SRC/stpctl.F90
- Timestamp:
- 2020-10-19T10:53:30+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/tests/STATION_ASF/MY_SRC/stpctl.F90
r13136 r13632 47 47 !! 48 48 !! ** Method : - Save the time step in numstp 49 !! - Print it each 50 time steps50 49 !! - Stop the run IF problem encountered by setting nstop > 0 51 50 !! Problems checked: wind stress module max larger than 5 N/m^2 … … 110 109 ! !== test of local extrema ==! 111 110 ! !== done by all processes at every time step ==! 112 llmsk(:,:) = tmask(:,:,1) == 1._wp 111 ! 112 llmsk( 1:Nis1,:) = .FALSE. ! exclude halos from the checked region 113 llmsk(Nie1: jpi,:) = .FALSE. 114 llmsk(:, 1:Njs1) = .FALSE. 115 llmsk(:,Nje1: jpj) = .FALSE. 116 ! 117 llmsk(Nis0:Nie0,Njs0:Nje0) = tmask(Nis0:Nie0,Njs0:Nje0,1) == 1._wp ! test only the inner domain 113 118 IF( COUNT( llmsk(:,:) ) > 0 ) THEN ! avoid huge values sent back for land processors... 114 119 zmax(1) = MAXVAL( taum(:,:) , mask = llmsk ) ! max wind stress module … … 153 158 IF( lwm .AND. kt /= nitend ) istatus = NF90_CLOSE(nrunid) 154 159 ! get global loc on the min/max 155 CALL mpp_maxloc( 'stpctl', taum(:,:) , tmask(:,:,1), zzz, iloc(1:2,1) ) ! mpp_maxloc ok if mask = F156 CALL mpp_maxloc( 'stpctl',ABS( qns(:,:) ), tmask(:,:,1), zzz, iloc(1:2,2) )157 CALL mpp_minloc( 'stpctl',ABS( emp(:,:) ), tmask(:,:,1), zzz, iloc(1:2,3) )160 CALL mpp_maxloc( 'stpctl', taum(:,:) , llmsk, zzz, iloc(1:2,1) ) ! mpp_maxloc ok if mask = F 161 CALL mpp_maxloc( 'stpctl',ABS( qns(:,:) ), llmsk, zzz, iloc(1:2,2) ) 162 CALL mpp_minloc( 'stpctl',ABS( emp(:,:) ), llmsk, zzz, iloc(1:2,3) ) 158 163 ! find which subdomain has the max. 159 164 iareamin(:) = jpnij+1 ; iareamax(:) = 0 ; iareasum(:) = 0 … … 168 173 ELSE ! find local min and max locations: 169 174 ! if we are here, this means that the subdomain contains some oce points -> no need to test the mask used in maxloc 170 iloc(1:2,1) = MAXLOC( taum(:,:) , mask = llmsk ) + (/ nimpp - 1, njmpp - 1/) 171 iloc(1:2,2) = MAXLOC( ABS( qns(:,:) ), mask = llmsk ) + (/ nimpp - 1, njmpp - 1/) 172 iloc(1:2,3) = MINLOC( ABS( emp(:,:) ), mask = llmsk ) + (/ nimpp - 1, njmpp - 1/) 175 iloc(1:2,1) = MAXLOC( taum(:,:) , mask = llmsk ) 176 iloc(1:2,2) = MAXLOC( ABS( qns(:,:) ), mask = llmsk ) 177 iloc(1:2,3) = MINLOC( ABS( emp(:,:) ), mask = llmsk ) 178 DO ji = 1, 3 ! local domain indices ==> global domain indices, excluding halos 179 iloc(1:2,ji) = (/ mig0(iloc(1,ji)), mjg0(iloc(2,ji)) /) 180 END DO 173 181 iareamin(:) = narea ; iareamax(:) = narea ; iareasum(:) = 1 ! this is local information 174 182 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.