Changeset 5107 for trunk/NEMOGCM/NEMO
- Timestamp:
- 2015-02-26T18:18:47+01:00 (9 years ago)
- Location:
- trunk/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90
r4990 r5107 82 82 CALL wrk_alloc( jpi , jpj , jpk , zrhd , zrhop ) 83 83 CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn ) 84 85 CALL iom_put( 'cellthc', fse3t(:,:,:) )86 84 87 85 zarea_ssh(:,:) = area(:,:) * sshn(:,:) -
trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r4990 r5107 142 142 ENDIF 143 143 144 IF( lk_vvl ) THEN 145 z3d(:,:,:) = tsn(:,:,:,jp_tem) * fse3t_n(:,:,:) 146 CALL iom_put( "toce" , z3d ) ! heat content 144 IF( .NOT.lk_vvl ) THEN 145 CALL iom_put( "e3t" , fse3t_n(:,:,:) ) 146 CALL iom_put( "e3u" , fse3u_n(:,:,:) ) 147 CALL iom_put( "e3v" , fse3v_n(:,:,:) ) 148 CALL iom_put( "e3w" , fse3w_n(:,:,:) ) 149 ENDIF 150 151 CALL iom_put( "toce", tsn(:,:,:,jp_tem) ) ! 3D temperature 152 CALL iom_put( "sst", tsn(:,:,1,jp_tem) ) ! surface temperature 153 IF ( iom_use("sbt") ) THEN 147 154 DO jj = 1, jpj 148 155 DO ji = 1, jpi 149 z2d(ji,jj) = tsn(ji,jj,mikt(ji,jj),jp_tem) * fse3t_n(ji,jj,mikt(ji,jj)) 150 END DO 151 END DO 152 CALL iom_put( "sst" , z2d(:,:) ) ! sea surface heat content 156 z2d(ji,jj) = tsn(ji,jj,MAX(mbathy(ji,jj),1),jp_tem) 157 END DO 158 END DO 159 CALL iom_put( "sbt", z2d ) ! bottom temperature 160 ENDIF 161 162 CALL iom_put( "soce", tsn(:,:,:,jp_sal) ) ! 3D salinity 163 CALL iom_put( "sss", tsn(:,:,1,jp_sal) ) ! surface salinity 164 IF ( iom_use("sbs") ) THEN 153 165 DO jj = 1, jpj 154 166 DO ji = 1, jpi 155 z2d(ji,jj) = tsn(ji,jj,mikt(ji,jj),jp_tem)**2 * fse3t_n(ji,jj,mikt(ji,jj)) 156 END DO 157 END DO 158 CALL iom_put( "sst2" , z2d(:,:) ) ! sea surface content of squared temperature 159 z3d(:,:,:) = tsn(:,:,:,jp_sal) * fse3t_n(:,:,:) 160 CALL iom_put( "soce" , z3d ) ! salinity content 167 z2d(ji,jj) = tsn(ji,jj,MAX(mbathy(ji,jj),1),jp_sal) 168 END DO 169 END DO 170 CALL iom_put( "sbs", z2d ) ! bottom salinity 171 ENDIF 172 173 CALL iom_put( "uoce", un(:,:,:) ) ! 3D i-current 174 CALL iom_put( "ssu", un(:,:,1) ) ! surface i-current 175 IF ( iom_use("sbu") ) THEN 161 176 DO jj = 1, jpj 162 177 DO ji = 1, jpi 163 z2d(ji,jj) = tsn(ji,jj,mikt(ji,jj),jp_sal) * fse3t_n(ji,jj,mikt(ji,jj)) 164 END DO 165 END DO 166 CALL iom_put( "sss" , z2d(:,:) ) ! sea surface salinity content 178 z2d(ji,jj) = un(ji,jj,MAX(mbathy(ji,jj),1)) 179 END DO 180 END DO 181 CALL iom_put( "sbu", z2d ) ! bottom i-current 182 ENDIF 183 184 CALL iom_put( "voce", vn(:,:,:) ) ! 3D j-current 185 CALL iom_put( "ssv", vn(:,:,1) ) ! surface j-current 186 IF ( iom_use("sbv") ) THEN 167 187 DO jj = 1, jpj 168 188 DO ji = 1, jpi 169 z2d(ji,jj) = tsn(ji,jj,mikt(ji,jj),jp_sal)**2 * fse3t_n(ji,jj,mikt(ji,jj)) 170 END DO 171 END DO 172 CALL iom_put( "sss2" , z2d(:,:) ) ! sea surface content of squared salinity 173 ELSE 174 CALL iom_put( "toce" , tsn(:,:,:,jp_tem) ) ! temperature 175 IF ( iom_use("sst") ) THEN 176 DO jj = 1, jpj 177 DO ji = 1, jpi 178 z2d(ji,jj) = tsn(ji,jj,mikt(ji,jj),jp_tem) 179 END DO 180 END DO 181 CALL iom_put( "sst" , z2d(:,:) ) ! sea surface temperature 182 ENDIF 183 IF ( iom_use("sst2") ) CALL iom_put( "sst2" , z2d(:,:) * z2d(:,:) ) ! square of sea surface temperature 184 CALL iom_put( "soce" , tsn(:,:,:,jp_sal) ) ! salinity 185 IF ( iom_use("sss") ) THEN 186 DO jj = 1, jpj 187 DO ji = 1, jpi 188 z2d(ji,jj) = tsn(ji,jj,mikt(ji,jj),jp_sal) 189 END DO 190 END DO 191 CALL iom_put( "sss" , z2d(:,:) ) ! sea surface salinity 192 ENDIF 193 CALL iom_put( "sss2" , z2d(:,:) * z2d(:,:) ) ! square of sea surface salinity 194 END IF 195 IF( lk_vvl .AND. (.NOT. ln_dynadv_vec) ) THEN 196 CALL iom_put( "uoce" , umask(:,:,:) * un(:,:,:) * fse3u_n(:,:,:) ) ! i-transport 197 CALL iom_put( "voce" , vmask(:,:,:) * vn(:,:,:) * fse3v_n(:,:,:) ) ! j-transport 198 ELSE 199 CALL iom_put( "uoce" , umask(:,:,:) * un(:,:,:) ) ! i-current 200 CALL iom_put( "voce" , vmask(:,:,:) * vn(:,:,:) ) ! j-current 201 IF ( iom_use("ssu") ) THEN 202 DO jj = 1, jpj 203 DO ji = 1, jpi 204 z2d(ji,jj) = un(ji,jj,miku(ji,jj)) 205 END DO 206 END DO 207 CALL iom_put( "ssu" , z2d ) ! i-current 208 ENDIF 209 IF ( iom_use("ssv") ) THEN 210 DO jj = 1, jpj 211 DO ji = 1, jpi 212 z2d(ji,jj) = vn(ji,jj,mikv(ji,jj)) 213 END DO 214 END DO 215 CALL iom_put( "ssv" , z2d ) ! j-current 216 ENDIF 217 ENDIF 218 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. 219 CALL iom_put( "avm" , avmu ) ! T vert. eddy visc. coef. 220 IF( lk_zdfddm ) THEN 221 CALL iom_put( "avs" , fsavs(:,:,:) ) ! S vert. eddy diff. coef. 222 ENDIF 223 224 IF ( iom_use("sstgrad2") .OR. iom_use("sstgrad2") ) THEN 189 z2d(ji,jj) = vn(ji,jj,MAX(mbathy(ji,jj),1)) 190 END DO 191 END DO 192 CALL iom_put( "sbv", z2d ) ! bottom j-current 193 ENDIF 194 195 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. 196 CALL iom_put( "avm" , avmu ) ! T vert. eddy visc. coef. 197 CALL iom_put( "avs" , fsavs(:,:,:) ) ! S vert. eddy diff. coef. (useful only with key_zdfddm) 198 199 IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 225 200 DO jj = 2, jpjm1 ! sst gradient 226 201 DO ji = fs_2, fs_jpim1 ! vector opt. … … 234 209 CALL lbc_lnk( z2d, 'T', 1. ) 235 210 CALL iom_put( "sstgrad2", z2d ) ! square of module of sst gradient 236 !CDIR NOVERRCHK<237 211 z2d(:,:) = SQRT( z2d(:,:) ) 238 212 CALL iom_put( "sstgrad" , z2d ) ! module of sst gradient … … 243 217 z2d(:,:) = 0._wp 244 218 DO jk = 1, jpkm1 245 DO jj = 2, jpjm1246 DO ji = fs_2, fs_jpim1 ! vector opt.219 DO jj = 1, jpj 220 DO ji = 1, jpi 247 221 z2d(ji,jj) = z2d(ji,jj) + fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_tem) * tmask(ji,jj,jk) 248 222 END DO 249 223 END DO 250 224 END DO 251 CALL lbc_lnk( z2d, 'T', 1. )252 225 CALL iom_put( "heatc", (rau0 * rcp) * z2d ) ! vertically integrated heat content (J/m2) 253 226 ENDIF … … 256 229 z2d(:,:) = 0._wp 257 230 DO jk = 1, jpkm1 258 DO jj = 2, jpjm1259 DO ji = fs_2, fs_jpim1 ! vector opt.231 DO jj = 1, jpj 232 DO ji = 1, jpi 260 233 z2d(ji,jj) = z2d(ji,jj) + fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_sal) * tmask(ji,jj,jk) 261 234 END DO 262 235 END DO 263 236 END DO 264 CALL lbc_lnk( z2d, 'T', 1. )265 237 CALL iom_put( "saltc", rau0 * z2d ) ! vertically integrated salt content (PSU*kg/m2) 266 238 ENDIF -
trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r4998 r5107 588 588 INTEGER, INTENT( in ) :: kt ! time step 589 589 !! * Local declarations 590 REAL(wp), POINTER, DIMENSION(:,:,:) :: z_e3t_def591 590 INTEGER :: ji,jj,jk ! dummy loop indices 592 591 !!---------------------------------------------------------------------- 593 592 594 593 IF( nn_timing == 1 ) CALL timing_start('dom_vvl_sf_swp') 595 !596 CALL wrk_alloc( jpi, jpj, jpk, z_e3t_def )597 594 ! 598 595 IF( kt == nit000 ) THEN … … 679 676 ! Write outputs 680 677 ! ============= 681 z_e3t_def(:,:,:) = ( ( fse3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 682 CALL iom_put( "cellthc" , fse3t_n (:,:,:) ) 678 CALL iom_put( "e3t" , fse3t_n (:,:,:) ) 679 CALL iom_put( "e3u" , fse3u_n (:,:,:) ) 680 CALL iom_put( "e3v" , fse3v_n (:,:,:) ) 681 CALL iom_put( "e3w" , fse3w_n (:,:,:) ) 683 682 CALL iom_put( "tpt_dep" , fsde3w_n (:,:,:) ) 684 CALL iom_put( "e3tdef" , z_e3t_def(:,:,:) ) 683 IF( iom_use("e3tdef") ) & 684 CALL iom_put( "e3tdef" , ( ( fse3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 ) 685 685 686 686 ! write restart file 687 687 ! ================== 688 688 IF( lrst_oce ) CALL dom_vvl_rst( kt, 'WRITE' ) 689 !690 CALL wrk_dealloc( jpi, jpj, jpk, z_e3t_def )691 689 ! 692 690 IF( nn_timing == 1 ) CALL timing_stop('dom_vvl_sf_swp')
Note: See TracChangeset
for help on using the changeset viewer.