- Timestamp:
- 2018-12-03T12:45:01+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/stpctl.F90
r10358 r10368 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 LOGICAL :: lsomeoce 36 37 !!---------------------------------------------------------------------- … … 65 66 INTEGER, DIMENSION(3) :: iu, is1, is2 ! min/max loc indices 66 67 REAL(wp) :: zzz ! local real 67 REAL(wp), DIMENSION( 5) :: zmax68 REAL(wp), DIMENSION(9) :: zmax 68 69 CHARACTER(len=20) :: clname 69 70 !!---------------------------------------------------------------------- … … 86 87 istatus = NF90_DEF_VAR( idrun, 's_min', NF90_DOUBLE, (/ idtime /), ids1 ) 87 88 istatus = NF90_DEF_VAR( idrun, 's_max', NF90_DOUBLE, (/ idtime /), ids2 ) 89 istatus = NF90_DEF_VAR( idrun, 't_min', NF90_DOUBLE, (/ idtime /), idt1 ) 90 istatus = NF90_DEF_VAR( idrun, 't_max', NF90_DOUBLE, (/ idtime /), idt2 ) 91 IF( ln_zad_Aimp ) THEN 92 istatus = NF90_DEF_VAR( idrun, 'abs_wi_max', NF90_DOUBLE, (/ idtime /), idw1 ) 93 istatus = NF90_DEF_VAR( idrun, 'Cu_max', NF90_DOUBLE, (/ idtime /), idc1 ) 94 ENDIF 88 95 istatus = NF90_ENDDEF(idrun) 96 zmax(8:9) = 0._wp ! initialise to zero in case ln_zad_Aimp option is not in use 89 97 ENDIF 90 98 ENDIF … … 105 113 zmax(3) = MAXVAL( -tsn(:,:,:,jp_sal) , mask = tmask(:,:,:) == 1._wp ) ! minus salinity max 106 114 zmax(4) = MAXVAL( tsn(:,:,:,jp_sal) , mask = tmask(:,:,:) == 1._wp ) ! salinity max 107 zmax(5) = REAL( nstop , wp ) ! stop indicator 115 zmax(5) = MAXVAL( -tsn(:,:,:,jp_tem) , mask = tmask(:,:,:) == 1._wp ) ! minus temperature max 116 zmax(6) = MAXVAL( tsn(:,:,:,jp_tem) , mask = tmask(:,:,:) == 1._wp ) ! temperature max 117 zmax(7) = REAL( nstop , wp ) ! stop indicator 118 IF( ln_zad_Aimp ) THEN 119 zmax(8) = MAXVAL( ABS( wi(:,:,:) ) , mask = wmask(:,:,:) == 1._wp ) ! implicit vertical vel. max 120 zmax(9) = MAXVAL( Cu_adv(:,:,:) , mask = tmask(:,:,:) == 1._wp ) ! cell Courant no. max 121 ENDIF 108 122 ! 109 123 IF( lk_mpp .AND. ln_ctl ) THEN 110 124 CALL mpp_max( "stpctl", zmax ) ! max over the global domain 111 nstop = NINT( zmax( 5) ) ! nstop indicator sheared among all local domains125 nstop = NINT( zmax(7) ) ! nstop indicator sheared among all local domains 112 126 ENDIF 113 127 ! !== run statistics ==! ("run.stat" files) … … 118 132 istatus = NF90_PUT_VAR( idrun, ids1, (/-zmax(3)/), (/kt/), (/1/) ) 119 133 istatus = NF90_PUT_VAR( idrun, ids2, (/ zmax(4)/), (/kt/), (/1/) ) 134 istatus = NF90_PUT_VAR( idrun, idt1, (/-zmax(5)/), (/kt/), (/1/) ) 135 istatus = NF90_PUT_VAR( idrun, idt2, (/ zmax(6)/), (/kt/), (/1/) ) 136 IF( ln_zad_Aimp ) THEN 137 istatus = NF90_PUT_VAR( idrun, idw1, (/ zmax(8)/), (/kt/), (/1/) ) 138 istatus = NF90_PUT_VAR( idrun, idc1, (/ zmax(9)/), (/kt/), (/1/) ) 139 ENDIF 120 140 IF( MOD( kt , 100 ) == 0 ) istatus = NF90_SYNC(idrun) 121 141 IF( kt == nitend ) istatus = NF90_CLOSE(idrun)
Note: See TracChangeset
for help on using the changeset viewer.