- Timestamp:
- 2018-09-12T15:59:13+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90
r7806 r10115 81 81 ! 82 82 REAL(wp), POINTER, DIMENSION(:,:) :: zarea_ssh , zbotpres ! 2D workspace 83 REAL(wp), POINTER, DIMENSION(:,:) :: pe! 2D workspace83 REAL(wp), POINTER, DIMENSION(:,:) :: zpe ! 2D workspace 84 84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zrhd , zrhop ! 3D workspace 85 85 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztsn ! 4D workspace … … 91 91 IF( kt == nit000 ) CALL dia_ar5_init 92 92 93 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres, pe )94 CALL wrk_alloc( jpi , jpj , jpk , zrhd , zrhop )95 CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn )93 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres, zpe ) 94 CALL wrk_alloc( jpi , jpj , jpk , zrhd , zrhop ) 95 CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn ) 96 96 97 97 zarea_ssh(:,:) = area(:,:) * sshn(:,:) … … 206 206 ! Exclude points where rn2 is negative as convection kicks in here and 207 207 ! work is not being done against stratification 208 pe(:,:) = 0._wp 209 IF( lk_zdfddm ) THEN 210 DO ji=1,jpi 211 DO jj=1,jpj 212 DO jk=1,jpk 213 zrw = ( fsdepw(ji,jj,jk ) - fsdept(ji,jj,jk) ) & 214 & / ( fsdept(ji,jj,jk-1) - fsdept(ji,jj,jk) ) 215 ! 216 zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 217 zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 218 ! 219 pe(ji, jj) = pe(ji, jj) - MIN(0._wp, rn2(ji,jj,jk)) * & 220 & grav * (avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) ) & 221 & - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 222 223 ENDDO 224 ENDDO 225 ENDDO 208 zpe(:,:) = 0._wp 209 IF( lk_zdfddm ) THEN 210 DO jk = 2, jpk 211 DO jj = 1, jpj 212 DO ji = 1, jpi 213 IF( rn2(ji,jj,jk) > 0._wp ) THEN 214 zrw = ( fsdepw(ji,jj,jk ) - fsdept(ji,jj,jk) ) & 215 & / ( fsdept(ji,jj,jk-1) - fsdept(ji,jj,jk) ) 216 ! 217 zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 218 zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 219 ! 220 zpe(ji, jj) = zpe(ji, jj) & 221 & - grav * ( avt(ji,jj,jk) * zaw * (tsn(ji,jj,jk-1,jp_tem) - tsn(ji,jj,jk,jp_tem) ) & 222 & - fsavs(ji,jj,jk) * zbw * (tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) ) ) 223 ENDIF 224 END DO 225 END DO 226 END DO 226 227 ELSE 227 DO ji=1,jpi228 DO jj=1,jpj229 DO jk=1,jpk230 pe(ji,jj) =pe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * fse3w(ji, jj, jk)231 ENDDO232 ENDDO233 ENDDO234 235 CALL lbc_lnk(pe, 'T', 1._wp)236 CALL iom_put( 'tnpeo', pe)228 DO jk = 1, jpk 229 DO ji = 1, jpi 230 DO jj = 1, jpj 231 zpe(ji,jj) = zpe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * fse3w(ji, jj, jk) 232 END DO 233 END DO 234 END DO 235 ENDIF 236 CALL lbc_lnk(zpe, 'T', 1._wp) 237 CALL iom_put( 'tnpeo', zpe ) 237 238 ENDIF 238 239 ! 239 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres, pe )240 CALL wrk_dealloc( jpi , jpj , jpk , zrhd , zrhop )241 CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn )240 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres, zpe ) 241 CALL wrk_dealloc( jpi , jpj , jpk , zrhd , zrhop ) 242 CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn ) 242 243 ! 243 244 IF( nn_timing == 1 ) CALL timing_stop('dia_ar5')
Note: See TracChangeset
for help on using the changeset viewer.