- Timestamp:
- 2016-01-14T19:22:56+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5936_INGV1_WAVE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfqiao.F90
r5983 r6253 53 53 !!--------------------------------------------------------------------- 54 54 INTEGER, INTENT( in ) :: kt ! ocean time step 55 INTEGER :: ierror ! return error code56 INTEGER :: jj, ji,jk55 ! 56 INTEGER :: jj, ji, jk 57 57 !!--------------------------------------------------------------------- 58 !!----------------------------------------------------------------------59 58 ! 60 59 ! 61 60 ! ! -------------------- ! 62 61 IF( kt == nit000 ) THEN ! First call kt=nit000 ! 63 ! ! -------------------- ! 64 ALLOCATE(QBv(jpi,jpj,jpk)) 62 ALLOCATE(QBv(jpi,jpj,jpk)) ! -------------------- ! 65 63 ALLOCATE(QBvu(jpi,jpj,jpk)) 66 64 ALLOCATE(QBvv(jpi,jpj,jpk)) 67 68 65 ENDIF 69 66 70 QBv (:,:,:) = 0.0 71 QBvu(:,:,:) = 0.0 72 QBvv(:,:,:) = 0.0 67 QBv (:,:,:) = 0.0 68 QBvu(:,:,:) = 0.0 69 QBvv(:,:,:) = 0.0 70 73 71 ! 74 72 ! Compute the Qiao term Bv (QBv) to be added to … … 80 78 IF ( ln_wave ) THEN 81 79 DO jk = 1, jpk 82 DO jj = 1, jpjm1 83 DO ji = 1, jpim1 84 85 QBv(ji,jj,jk) = 1.0 * 0.353553 * swh(ji,jj) * tsd2d(ji,jj) * & 86 & exp(3.0 * wnum(ji,jj) * & 87 & (-MIN( gdept_0(ji ,jj ,jk) , gdept_0(ji+1,jj ,jk), & 80 DO jj = 1, jpjm1 81 DO ji = 1, jpim1 82 QBv(ji,jj,jk) = 1.0 * 0.353553 * swh(ji,jj) * tsd2d(ji,jj) * & 83 & exp(3.0 * wnum(ji,jj) * & 84 & (-MIN( gdept_0(ji ,jj ,jk) , gdept_0(ji+1,jj ,jk), & 88 85 & gdept_0(ji ,jj+1,jk),gdept_0(ji+1,jj+1,jk)))) 89 90 ENDDO 91 ENDDO 92 ENDDO 86 END DO 87 END DO 88 END DO 93 89 94 90 QBv(jpi,:,:)=QBv(jpim1,:,:) … … 98 94 ! Interpolate Qiao parameter QBv into the grid_U and grid_V 99 95 !------------------------------------------------- 100 96 ! 101 97 DO jk = 1, jpk 102 DO jj = 1, jpjm1 103 DO ji = 1, jpim1 104 105 QBvu(ji,jj,jk)=0.5 * ( 2. - umask(ji,jj,jk) ) * & 106 & ( QBv(ji,jj,jk) * tmask(ji,jj,jk) & 98 DO jj = 1, jpjm1 99 DO ji = 1, jpim1 100 QBvu(ji,jj,jk)=0.5 * ( 2. - umask(ji,jj,jk) ) * & 101 & ( QBv(ji,jj,jk) * tmask(ji,jj,jk) & 107 102 & + QBv(ji+1,jj,jk) * tmask(ji+1,jj,jk) ) 108 QBvv(ji,jj,jk)=0.5 * ( 2. - vmask(ji,jj,jk) ) * &109 & ( QBv(ji,jj,jk) * tmask(ji,jj,jk) &103 QBvv(ji,jj,jk)=0.5 * ( 2. - vmask(ji,jj,jk) ) * & 104 & ( QBv(ji,jj,jk) * tmask(ji,jj,jk) & 110 105 & + QBv(ji,jj+1,jk) * tmask(ji,jj+1,jk) ) 111 106 112 ENDDO113 END DO114 ENDDO115 ! 107 END DO 108 END DO 109 END DO 110 ! 116 111 QBvu(jpi,:,:)=QBvu(jpim1,:,:) 117 112 QBvu(:,jpj,:)=QBvu(:,jpjm1,:) 118 113 QBvv(jpi,:,:)=QBvv(jpim1,:,:) 119 114 QBvv(:,jpj,:)=QBvv(:,jpjm1,:) 120 ! 115 121 116 ELSE 117 CALL ctl_stop( 'STOP', 'To use Qiao formulation you have to set: ln_wave=.true.') 118 ENDIF 122 119 ! 123 CALL ctl_stop( 'STOP', 'To use Qiao formulation you have to set: ln_wave=.true.')124 !125 ENDIF126 !127 120 END SUBROUTINE zdf_qiao 128 121
Note: See TracChangeset
for help on using the changeset viewer.