- Timestamp:
- 2016-11-30T17:56:53+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r6140 r7403 90 90 INTEGER, INTENT( in ) :: kt ! ocean time step 91 91 ! 92 INTEGER :: ji, jj ! loop index 92 INTEGER :: ji, jj, jk ! loop index 93 INTEGER :: ikt, ikb ! loop index 93 94 REAL(wp), DIMENSION (:,:), POINTER :: zt_frz, zdep ! freezing temperature (zt_frz) at depth (zdep) 95 REAL(wp), DIMENSION(:,:,:), POINTER :: zfwfisf3d, zqhcisf3d, zqlatisf3d 96 REAL(wp), DIMENSION(:,: ), POINTER :: zqhcisf2d 94 97 !!--------------------------------------------------------------------- 95 98 ! … … 161 164 CALL lbc_lnk(risf_tsc(:,:,jp_tem),'T',1.) 162 165 CALL lbc_lnk(risf_tsc(:,:,jp_sal),'T',1.) 163 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 164 CALL lbc_lnk(qisf(:,:) ,'T',1.) 166 CALL lbc_lnk(fwfisf(:,:) ,'T',1.) 167 CALL lbc_lnk(qisf(:,:) ,'T',1.) 168 169 !============================================================================================================================================= 170 IF ( iom_use('fwfisf3d') .OR. iom_use('qlatisf3d') .OR. iom_use('qhcisf3d') .OR. iom_use('qhcisf')) THEN 171 CALL wrk_alloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 172 CALL wrk_alloc( jpi,jpj, zqhcisf2d ) 173 174 zfwfisf3d(:,:,:) = 0.0_wp ! 3d ice shelf melting (kg/m2/s) 175 zqhcisf3d(:,:,:) = 0.0_wp ! 3d heat content flux (W/m2) 176 zqlatisf3d(:,:,:)= 0.0_wp ! 3d ice shelf melting latent heat flux (W/m2) 177 zqhcisf2d(:,:) = fwfisf(:,:) * zt_frz * rcp ! 2d heat content flux (W/m2) 178 179 DO jj = 1,jpj 180 DO ji = 1,jpi 181 ikt = misfkt(ji,jj) 182 ikb = misfkb(ji,jj) 183 DO jk = ikt, ikb - 1 184 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * e3t_n(ji,jj,jk) 185 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * e3t_n(ji,jj,jk) 186 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * e3t_n(ji,jj,jk) 187 END DO 188 zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * e3t_n(ji,jj,jk) 189 zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * e3t_n(ji,jj,jk) 190 zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * e3t_n(ji,jj,jk) 191 END DO 192 END DO 193 194 CALL iom_put('fwfisf3d' , zfwfisf3d (:,:,:)) 195 CALL iom_put('qlatisf3d', zqlatisf3d(:,:,:)) 196 CALL iom_put('qhcisf3d' , zqhcisf3d (:,:,:)) 197 CALL iom_put('qhcisf' , zqhcisf2d (:,: )) 198 199 CALL wrk_dealloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 200 CALL wrk_dealloc( jpi,jpj, zqhcisf2d ) 201 END IF 202 203 ! output 204 CALL iom_put('qlatisf' , qisf) 205 CALL iom_put('fwfisf', fwfisf) 206 !============================================================================================================================================= 165 207 166 208 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! … … 177 219 END IF 178 220 ! 179 ! output180 CALL iom_put('qisf' , qisf)181 CALL iom_put('fwfisf', fwfisf)182 183 221 ! deallocation 184 222 CALL wrk_dealloc( jpi,jpj, zt_frz, zdep )
Note: See TracChangeset
for help on using the changeset viewer.