Changeset 2715 for trunk/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
r2528 r2715 7 7 USE dom_oce 8 8 USE agrif_oce 9 USE in_out_manager ! I/O manager 10 USE lib_mpp 9 11 10 12 IMPLICIT NONE … … 27 29 !! *** ROUTINE Agrif_Update_Tra *** 28 30 !!--------------------------------------------- 31 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 32 USE wrk_nemo, ONLY: wrk_3d_1 33 !! 29 34 INTEGER, INTENT(in) :: kt 30 31 REAL :: ztab(jpi,jpj,jpk) 32 35 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab 36 37 33 38 IF((Agrif_NbStepint() .NE. (Agrif_irhot()-1)).AND.(kt /= 0)) RETURN 34 39 #if defined TWO_WAY 40 ztab => wrk_3d_1 41 IF( wrk_in_use(3, 1) ) THEN 42 CALL ctl_stop('agrif_update_tra: ERROR: requested workspace arrays unavailable') 43 RETURN 44 END IF 45 35 46 Agrif_UseSpecialValueInUpdate = .TRUE. 36 47 Agrif_SpecialValueFineGrid = 0. 37 48 38 49 IF (MOD(nbcline,nbclineupdate) == 0) THEN 39 CALL Agrif_Update_Variable(ztab,tn , procname=updateT)40 CALL Agrif_Update_Variable(ztab,sn , procname=updateS)41 ELSE 42 CALL Agrif_Update_Variable(ztab,tn ,locupdate=(/0,2/), procname=updateT)43 CALL Agrif_Update_Variable(ztab,sn ,locupdate=(/0,2/), procname=updateS)50 CALL Agrif_Update_Variable(ztab,tn_id, procname=updateT) 51 CALL Agrif_Update_Variable(ztab,sn_id, procname=updateS) 52 ELSE 53 CALL Agrif_Update_Variable(ztab,tn_id,locupdate=(/0,2/), procname=updateT) 54 CALL Agrif_Update_Variable(ztab,sn_id,locupdate=(/0,2/), procname=updateS) 44 55 ENDIF 45 56 46 57 Agrif_UseSpecialValueInUpdate = .FALSE. 58 59 IF( wrk_not_released(3, 1) ) THEN 60 CALL ctl_stop('Agrif_Update_Tra: ERROR: failed to release workspace arrays') 61 END IF 47 62 #endif 48 63 … … 53 68 !! *** ROUTINE Agrif_Update_Dyn *** 54 69 !!--------------------------------------------- 70 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 71 USE wrk_nemo, ONLY: wrk_2d_1 72 USE wrk_nemo, ONLY: wrk_3d_1 73 !! 55 74 INTEGER, INTENT(in) :: kt 56 57 REAL(wp), DIMENSION(jpi,jpj) :: ztab2d58 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztab 75 REAL(wp), POINTER, DIMENSION(:,:) :: ztab2d 76 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab 77 59 78 60 79 IF ((Agrif_NbStepint() .NE. (Agrif_irhot()-1)).AND.(kt /= 0)) Return 61 80 #if defined TWO_WAY 81 ztab => wrk_3d_1 ; ztab2d => wrk_2d_1 82 IF( ( wrk_in_use(2, 1)) .OR. wrk_in_use(3, 1) )THEN 83 CALL ctl_stop('agrif_update_dyn: ERROR: requested workspace arrays unavailable') 84 RETURN 85 END IF 62 86 63 87 IF (mod(nbcline,nbclineupdate) == 0) THEN 64 CALL Agrif_Update_Variable(ztab,un ,procname = updateU)65 CALL Agrif_Update_Variable(ztab,vn ,procname = updateV)66 ELSE 67 CALL Agrif_Update_Variable(ztab,un ,locupdate=(/0,1/),procname = updateU)68 CALL Agrif_Update_Variable(ztab,vn ,locupdate=(/0,1/),procname = updateV)69 ENDIF 70 71 CALL Agrif_Update_Variable(ztab2d,e1u ,procname = updateU2d)72 CALL Agrif_Update_Variable(ztab2d,e2v ,procname = updateV2d)88 CALL Agrif_Update_Variable(ztab,un_id,procname = updateU) 89 CALL Agrif_Update_Variable(ztab,vn_id,procname = updateV) 90 ELSE 91 CALL Agrif_Update_Variable(ztab,un_id,locupdate=(/0,1/),procname = updateU) 92 CALL Agrif_Update_Variable(ztab,vn_id,locupdate=(/0,1/),procname = updateV) 93 ENDIF 94 95 CALL Agrif_Update_Variable(ztab2d,e1u_id,procname = updateU2d) 96 CALL Agrif_Update_Variable(ztab2d,e2v_id,procname = updateV2d) 73 97 74 98 nbcline = nbcline + 1 … … 76 100 Agrif_UseSpecialValueInUpdate = ln_spc_dyn 77 101 Agrif_SpecialValueFineGrid = 0. 78 CALL Agrif_Update_Variable(ztab2d,sshn ,procname = updateSSH)102 CALL Agrif_Update_Variable(ztab2d,sshn_id,procname = updateSSH) 79 103 Agrif_UseSpecialValueInUpdate = .FALSE. 80 104 105 IF( wrk_not_released(2, 1) .OR. wrk_not_released(3, 1) )THEN 106 CALL ctl_stop('agrif_update_dyn: ERROR: failed to release workspace arrays') 107 END IF 81 108 82 109 !Done in step … … 184 211 DO ji=i1,i2 185 212 tabres(ji,jj,jk) = e2u(ji,jj) * un(ji,jj,jk) 213 tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3u(ji,jj,jk) 186 214 END DO 187 215 END DO
Note: See TracChangeset
for help on using the changeset viewer.