Changeset 7240
- Timestamp:
- 2016-11-16T16:04:30+01:00 (8 years ago)
- Location:
- branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r6387 r7240 302 302 CALL iom_put( "hdiv", hdivn ) ! Horizontal divergence 303 303 ! 304 IF( iom_use("u_masstr") .OR. iom_use("u_ heattr") .OR. iom_use("u_salttr") ) THEN304 IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 305 305 z3d(:,:,jpk) = 0.e0 306 z2d(:,:) = 0.e0 306 307 DO jk = 1, jpkm1 307 z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * e3u_n(:,:,jk) * umask(:,:,jk) 308 z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk) 309 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 308 310 END DO 309 311 CALL iom_put( "u_masstr", z3d ) ! mass transport in i-direction 312 CALL iom_put( "u_masstr_vint", z2d ) ! mass transport in i-direction vertical sum 310 313 ENDIF 311 314 … … 370 373 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 371 374 ENDIF 375 376 ! Vertical integral of temperature 377 IF( iom_use("tosmint") ) THEN 378 z2d(:,:)=0._wp 379 DO jk = 1, jpkm1 380 DO jj = 2, jpjm1 381 DO ji = fs_2, fs_jpim1 ! vector opt. 382 z2d(ji,jj) = z2d(ji,jj) + rau0 * e3t_n(ji,jj,jk) * tsn(ji,jj,jk,jp_tem) 383 END DO 384 END DO 385 END DO 386 CALL lbc_lnk( z2d, 'T', -1. ) 387 CALL iom_put( "tosmint", z2d ) 388 ENDIF 389 390 ! Vertical integral of salinity 391 IF( iom_use("somint") ) THEN 392 z2d(:,:)=0._wp 393 DO jk = 1, jpkm1 394 DO jj = 2, jpjm1 395 DO ji = fs_2, fs_jpim1 ! vector opt. 396 z2d(ji,jj) = z2d(ji,jj) + rau0 * e3t_n(ji,jj,jk) * tsn(ji,jj,jk,jp_sal) 397 END DO 398 END DO 399 END DO 400 CALL lbc_lnk( z2d, 'T', -1. ) 401 CALL iom_put( "somint", z2d ) 402 ENDIF 403 404 CALL iom_put( "bn2", rn2 ) !Brunt-Vaisala buoyancy frequency (N^2) 372 405 ! 373 406 CALL wrk_dealloc( jpi , jpj , z2d ) -
branches/2016/dev_r7233_CMIP6_diags_trunk_version/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r6140 r7240 92 92 INTEGER :: ji, jj ! loop index 93 93 REAL(wp), DIMENSION (:,:), POINTER :: zt_frz, zdep ! freezing temperature (zt_frz) at depth (zdep) 94 REAL(wp), DIMENSION(:,:,:), POINTER :: zfwfisf3d, zqhcisf3d, zqlatisf3d 95 REAL(wp), DIMENSION(:,: ), POINTER :: zqhcisf2d 94 96 !!--------------------------------------------------------------------- 95 97 ! … … 161 163 CALL lbc_lnk(risf_tsc(:,:,jp_tem),'T',1.) 162 164 CALL lbc_lnk(risf_tsc(:,:,jp_sal),'T',1.) 163 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 164 CALL lbc_lnk(qisf(:,:) ,'T',1.) 165 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 166 CALL lbc_lnk(qisf(:,:) ,'T',1.) 167 168 !============================================================================================================================================= 169 IF ( iom_use('fwfisf3d') .OR. iom_use('qlatisf3d') .OR. iom_use('qhcisf3d') .OR. iom_use('qhcisf')) THEN 170 CALL wrk_alloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 171 CALL wrk_alloc( jpi,jpj, zqhcisf2d ) 172 173 zfwfisf3d(:,:,:) = 0.0_wp ! 3d ice shelf melting (kg/m2/s) 174 zqhcisf3d(:,:,:) = 0.0_wp ! 3d heat content flux (W/m2) 175 zqlatisf3d(:,:,:)= 0.0_wp ! 3d ice shelf melting latent heat flux (W/m2) 176 zqhcisf2d(:,:) = fwfisf(:,:) * zt_frz * rcp ! 2d heat content flux (W/m2) 177 178 DO jj = 1,jpj 179 DO ji = 1,jpi 180 ikt = misfkt(ji,jj) 181 ikb = misfkb(ji,jj) 182 DO jk = ikt, ikb - 1 183 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * e3t_n(ji,jj,jk) 184 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * e3t_n(ji,jj,jk) 185 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * e3t_n(ji,jj,jk) 186 END DO 187 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * e3t_n(ji,jj,jk) 188 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * e3t_n(ji,jj,jk) 189 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * e3t_n(ji,jj,jk) 190 END DO 191 END DO 192 193 CALL iom_put('fwfisf3d' , zfwfisf3d (:,:,:)) 194 CALL iom_put('qlatisf3d', zqlatisf3d(:,:,:)) 195 CALL iom_put('qhcisf3d' , zqhcisf3d (:,:,:)) 196 CALL iom_put('qhcisf' , zqhcisf2d (:,: )) 197 198 CALL wrk_dealloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 199 CALL wrk_dealloc( jpi,jpj, zqhcisf2d ) 200 END IF 201 202 ! output 203 CALL iom_put('qlatisf' , qisf) 204 CALL iom_put('fwfisf', fwfisf) 205 !============================================================================================================================================= 165 206 166 207 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! … … 177 218 END IF 178 219 ! 179 ! output180 CALL iom_put('qisf' , qisf)181 CALL iom_put('fwfisf', fwfisf)182 183 220 ! deallocation 184 221 CALL wrk_dealloc( jpi,jpj, zt_frz, zdep )
Note: See TracChangeset
for help on using the changeset viewer.