Changeset 108 for trunk/libf/dyn3dpar/top_bound_p.F
- Timestamp:
- Apr 12, 2011, 11:16:02 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libf/dyn3dpar/top_bound_p.F
r1 r108 64 64 rdamp(llm-3)=tau_top_bound/8. 65 65 else if (iflag_top_bound == 2) then 66 ! couc e eponge dans toutes les couches de pression plus faible que66 ! couche eponge dans toutes les couches de pression plus faible que 67 67 ! 100 fois la pression de la derniere couche 68 68 rdamp(:)=tau_top_bound … … 70 70 endif 71 71 first=.false. 72 print*,'TOP_BOUND rdamp=',rdamp 72 print*,'TOP_BOUND mode',mode_top_bound 73 print*,'Coeffs pour la couche eponge a l equateur' 74 print*,'p (Pa) z(km) tau (s) dt*rdamp' 75 do l=1,llm 76 if (rdamp(l).ne.0.) then 77 zkm = phi(iip1/2,jjp1/2,l)/(1000*g) 78 print*,presnivs(l),zkm, 79 . 1./rdamp(l), 80 . dt*rdamp(l) 81 endif 82 enddo 73 83 c$OMP END MASTER 74 84 c$OMP BARRIER … … 77 87 78 88 CALL massbar_p(masse,massebx,masseby) 89 90 c mode = 0 : pas de sponge 91 c mode = 1 : u et v -> 0 92 c mode = 2 : u et v -> moyenne zonale 93 c mode = 3 : u, v et h -> moyenne zonale 94 95 C POUR V 96 79 97 C CALCUL DES CHAMPS EN MOYENNE ZONALE: 80 98 … … 84 102 85 103 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 86 do l=1,llm 104 if (mode_top_bound.ge.2) then 105 do l=1,llm 87 106 do j=jjb,jje 88 107 zm=0. … … 97 116 vzon(j,l)=vzon(j,l)/zm 98 117 enddo 99 enddo 118 enddo 119 else 120 do l=1,llm 121 do j=jjb,jje 122 vzon(j,l)=0. 123 enddo 124 enddo 125 endif 100 126 c$OMP END DO NOWAIT 101 127 102 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 103 do l=1,llm 128 C AMORTISSEMENTS LINEAIRES: 129 130 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 131 if (mode_top_bound.ge.1) then 132 do l=1,llm 104 133 do j=jjb,jje 105 134 do i=1,iip1 106 dv(i,j,l)=dv(i,j,l)-rdamp(l)*(vcov(i,j,l)-vzon(j,l)) 107 enddo 108 enddo 109 enddo 110 c$OMP END DO NOWAIT 135 dv(i,j,l)= -rdamp(l)*(vcov(i,j,l)-vzon(j,l)) 136 enddo 137 enddo 138 enddo 139 endif 140 c$OMP END DO NOWAIT 141 142 C POUR U ET H 143 144 C CALCUL DES CHAMPS EN MOYENNE ZONALE: 111 145 112 146 jjb=jj_begin … … 116 150 117 151 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 118 do l=1,llm 152 if (mode_top_bound.ge.2) then 153 do l=1,llm 119 154 do j=jjb,jje 120 155 uzon(j,l)=0. … … 126 161 uzon(j,l)=uzon(j,l)/zm 127 162 enddo 128 enddo 163 enddo 164 else 165 do l=1,llm 166 do j=jjb,jje 167 uzon(j,l)=0. 168 enddo 169 enddo 170 endif 129 171 c$OMP END DO NOWAIT 130 172 131 173 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 132 do l=1,llm 174 if (mode_top_bound.ge.3) then 175 do l=1,llm 133 176 do j=jjb,jje 134 177 zm=0. … … 140 183 tzon(j,l)=tzon(j,l)/zm 141 184 enddo 142 enddo 185 enddo 186 endif 143 187 c$OMP END DO NOWAIT 144 188 … … 146 190 147 191 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 148 do l=1,llm 192 if (mode_top_bound.ge.1) then 193 do l=1,llm 149 194 do j=jjb,jje 150 195 do i=1,iip1 151 du(i,j,l)=du(i,j,l) 152 s -rdamp(l)*(ucov(i,j,l)-cu(i,j)*uzon(j,l)) 153 dh(i,j,l)=dh(i,j,l)-rdamp(l)*(teta(i,j,l)-tzon(j,l)) 154 enddo 155 enddo 156 enddo 196 du(i,j,l)= -rdamp(l)*(ucov(i,j,l)-cu(i,j)*uzon(j,l)) 197 enddo 198 enddo 199 enddo 200 endif 201 c$OMP END DO NOWAIT 202 203 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 204 if (mode_top_bound.ge.3) then 205 do l=1,llm 206 do j=jjb,jje 207 do i=1,iip1 208 dh(i,j,l)= -rdamp(l)*(teta(i,j,l)-tzon(j,l)) 209 enddo 210 enddo 211 enddo 212 endif 157 213 c$OMP END DO NOWAIT 158 214
Note: See TracChangeset
for help on using the changeset viewer.