Changeset 10364 for NEMO/trunk/src/OCE/stpctl.F90
- Timestamp:
- 2018-11-30T18:42:51+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/stpctl.F90
r10068 r10364 24 24 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 25 25 USE lib_mpp ! distributed memory computing 26 USE zdf_oce , ONLY : ln_zad_Aimp ! ocean vertical physics variables 26 27 USE wet_dry, ONLY : ll_wd, ssh_ref ! reference depth for negative bathy 27 28 … … 32 33 PUBLIC stp_ctl ! routine called by step.F90 33 34 34 INTEGER :: idrun, idtime, idssh, idu, ids1, ids2, i status35 INTEGER :: idrun, idtime, idssh, idu, ids1, ids2, idt1, idt2, idc1, idw1, istatus 35 36 !!---------------------------------------------------------------------- 36 37 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 68 69 INTEGER , DIMENSION(3) :: ilocu, ilocs1, ilocs2 69 70 INTEGER , DIMENSION(2) :: iloch 70 REAL(wp), DIMENSION( 5) :: zmax71 REAL(wp), DIMENSION(9) :: zmax 71 72 CHARACTER(len=20) :: clname 72 73 !!---------------------------------------------------------------------- … … 90 91 istatus = NF90_DEF_VAR( idrun, 's_min', NF90_DOUBLE, (/ idtime /), ids1 ) 91 92 istatus = NF90_DEF_VAR( idrun, 's_max', NF90_DOUBLE, (/ idtime /), ids2 ) 93 istatus = NF90_DEF_VAR( idrun, 't_min', NF90_DOUBLE, (/ idtime /), idt1 ) 94 istatus = NF90_DEF_VAR( idrun, 't_max', NF90_DOUBLE, (/ idtime /), idt2 ) 95 IF( ln_zad_Aimp ) THEN 96 istatus = NF90_DEF_VAR( idrun, 'abs_wi_max', NF90_DOUBLE, (/ idtime /), idw1 ) 97 istatus = NF90_DEF_VAR( idrun, 'Cu_max', NF90_DOUBLE, (/ idtime /), idc1 ) 98 ENDIF 92 99 istatus = NF90_ENDDEF(idrun) 93 100 ENDIF 101 zmax(8:9) = 0._wp ! initialise to zero in case ln_zad_Aimp option is not in use 94 102 95 103 ENDIF … … 109 117 zmax(3) = MAXVAL( -tsn(:,:,:,jp_sal) , mask = tmask(:,:,:) == 1._wp ) ! minus salinity max 110 118 zmax(4) = MAXVAL( tsn(:,:,:,jp_sal) , mask = tmask(:,:,:) == 1._wp ) ! salinity max 111 zmax(5) = REAL( nstop , wp ) ! stop indicator 119 zmax(5) = MAXVAL( -tsn(:,:,:,jp_tem) , mask = tmask(:,:,:) == 1._wp ) ! minus temperature max 120 zmax(6) = MAXVAL( tsn(:,:,:,jp_tem) , mask = tmask(:,:,:) == 1._wp ) ! temperature max 121 zmax(7) = REAL( nstop , wp ) ! stop indicator 122 IF( ln_zad_Aimp ) THEN 123 zmax(8) = MAXVAL( ABS( wi(:,:,:) ) , mask = wmask(:,:,:) == 1._wp ) ! implicit vertical vel. max 124 zmax(9) = MAXVAL( Cu_adv(:,:,:) , mask = tmask(:,:,:) == 1._wp ) ! cell Courant no. max 125 ENDIF 112 126 ! 113 127 IF( lk_mpp ) THEN 114 CALL mpp_max_multiple( zmax(:), 5) ! max over the global domain128 CALL mpp_max_multiple( zmax(:), 9 ) ! max over the global domain 115 129 ! 116 nstop = NINT( zmax( 5) ) ! nstop indicator sheared among all local domains130 nstop = NINT( zmax(7) ) ! nstop indicator sheared among all local domains 117 131 ENDIF 118 132 ! … … 172 186 istatus = NF90_PUT_VAR( idrun, ids1, (/-zmax(3)/), (/kt/), (/1/) ) 173 187 istatus = NF90_PUT_VAR( idrun, ids2, (/ zmax(4)/), (/kt/), (/1/) ) 188 istatus = NF90_PUT_VAR( idrun, idt1, (/-zmax(5)/), (/kt/), (/1/) ) 189 istatus = NF90_PUT_VAR( idrun, idt2, (/ zmax(6)/), (/kt/), (/1/) ) 190 IF( ln_zad_Aimp ) THEN 191 istatus = NF90_PUT_VAR( idrun, idw1, (/ zmax(8)/), (/kt/), (/1/) ) 192 istatus = NF90_PUT_VAR( idrun, idc1, (/ zmax(9)/), (/kt/), (/1/) ) 193 ENDIF 174 194 IF( MOD( kt , 100 ) == 0 ) istatus = NF90_SYNC(idrun) 175 195 IF( kt == nitend ) istatus = NF90_CLOSE(idrun)
Note: See TracChangeset
for help on using the changeset viewer.