Changeset 487 for codes/icosagcm/trunk/src
- Timestamp:
- 10/12/16 16:11:13 (8 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/advect.f90
r327 r487 19 19 INTEGER :: ij 20 20 21 ! $SIMD21 !DIR$ SIMD 22 22 DO ij=ij_begin,ij_end 23 23 … … 84 84 ! arr = area of triangle joining centroids of hexagons 85 85 ! DO l = ll_begin,ll_end 86 !! $SIMD86 !!DIR$ SIMD 87 87 ! DO ij=ij_begin_ext,ij_end_ext 88 88 !! CALL gradq(ij,l,ij+t_rup,ij+t_lup,ij+z_up,qi,gradtri(ij+z_up,l,:),arr(ij+z_up)) … … 94 94 95 95 DO l = ll_begin,ll_end 96 ! $SIMD96 !DIR$ SIMD 97 97 DO ij=ij_begin_ext,ij_end_ext 98 98 ! CALL gradq(ij,l,ij+t_rup,ij+t_lup,ij+z_up,qi,gradtri(ij+z_up,l,1),gradtri(ij+z_up,l,2),gradtri(ij+z_up,l,3),arr(ij+z_up)) … … 225 225 END DO 226 226 227 ! $SIMD227 !DIR$ SIMD 228 228 DO ij=ij_begin,ij_end 229 229 ar(ij) = arr(ij+z_up)+arr(ij+z_lup)+arr(ij+z_ldown)+arr(ij+z_down)+arr(ij+z_rdown)+arr(ij+z_rup)+1.e-50 … … 234 234 DO k=1,3 235 235 DO l =ll_begin,ll_end 236 ! $SIMD236 !DIR$ SIMD 237 237 DO ij=ij_begin,ij_end 238 238 gradq3d(ij,l,k) = ( gradtri(ij+z_up,l,k) + gradtri(ij+z_down,l,k) + & … … 247 247 !============================================================================================= LIMITING 248 248 DO l =ll_begin,ll_end 249 ! $SIMD249 !DIR$ SIMD 250 250 DO ij=ij_begin,ij_end 251 251 ! maggrd = dot_product(gradq3d(ij,l,:),gradq3d(ij,l,:)) … … 369 369 ! reconstruct tangential wind then 3D wind at edge then cc = edge midpoint - u*tau 370 370 DO l = ll_begin,ll_end 371 ! $SIMD371 !DIR$ SIMD 372 372 DO ij=ij_begin,ij_end 373 373 up_e =1/de(ij+u_right)*( & … … 447 447 DO l = ll_begin,ll_end 448 448 449 ! $SIMD449 !DIR$ SIMD 450 450 DO ij=ij_begin_ext,ij_end_ext 451 451 … … 487 487 ! update q and, if update_mass, update mass 488 488 DO l = ll_begin,ll_end 489 ! $SIMD489 !DIR$ SIMD 490 490 DO ij=ij_begin,ij_end 491 491 ! sign convention as Ringler et al. (2010) eq. 21 -
codes/icosagcm/trunk/src/advect_tracer.f90
r380 r487 239 239 240 240 DO l=ll_beginp1,ll_end 241 ! $SIMD241 !DIR$ SIMD 242 242 DO ij=ijb,ije 243 243 dzqw(ij,l)=q(ij,l)-q(ij,l-1) … … 253 253 254 254 DO l=ll_beginp1,ll_endm1 255 ! $SIMD255 !DIR$ SIMD 256 256 DO ij=ijb,ije 257 257 IF(dzqw(ij,l)*dzqw(ij,l+1).gt.0.) THEN … … 285 285 ! then amount of q leaving level l/l+1 = wq = w * qq 286 286 DO l=ll_beginp1,ll_end 287 ! $SIMD287 !DIR$ SIMD 288 288 DO ij=ijb,ije 289 289 w = fac*wfluxt(ij,l) … … 317 317 ! update q, mass is updated only after all q's have been updated 318 318 DO l=ll_begin,ll_end 319 ! $SIMD319 !DIR$ SIMD 320 320 DO ij=ijb,ije 321 321 newmass = mass(ij,l) + fac*(wfluxt(ij,l)-wfluxt(ij,l+1)) -
codes/icosagcm/trunk/src/dissip_gcm.f90
r387 r487 501 501 502 502 DO l=ll_begin,ll_end 503 ! $SIMD503 !DIR$ SIMD 504 504 DO ij=ij_begin,ij_end 505 505 … … 587 587 due=f_due(ind) 588 588 DO l = ll_begin, ll_end 589 ! $SIMD589 !DIR$ SIMD 590 590 DO ij=ij_begin,ij_end 591 591 due(ij+u_right,l)=ue(ij+u_right,l) … … 636 636 due=f_due(ind) 637 637 DO l = ll_begin, ll_end 638 ! $SIMD638 !DIR$ SIMD 639 639 DO ij=ij_begin,ij_end 640 640 due(ij+u_right,l)=ue(ij+u_right,l) … … 731 731 dtheta_rhodz=f_dtheta_rhodz(ind) 732 732 DO l = ll_begin, ll_end 733 ! $SIMD733 !DIR$ SIMD 734 734 DO ij=ij_begin,ij_end 735 735 dtheta_rhodz(ij,l) = theta_rhodz(ij,l,1) / mass(ij,l) … … 760 760 761 761 DO l = ll_begin, ll_end 762 ! $SIMD762 !DIR$ SIMD 763 763 DO ij=ij_begin,ij_end 764 764 dtheta_rhodz(ij,l) = dtheta_rhodz(ij,l) * mass(ij,l) … … 784 784 785 785 DO l=llb,lle 786 ! $SIMD786 !DIR$ SIMD 787 787 DO ij=ij_begin,ij_end 788 788 divu_i(ij,l)=1./Ai(ij)*(ne(ij,right)*ue(ij+u_right,l)*le(ij+u_right) + & … … 796 796 797 797 DO l=llb,lle 798 ! $SIMD798 !DIR$ SIMD 799 799 DO ij=ij_begin,ij_end 800 800 … … 809 809 810 810 DO l=llb,lle 811 ! $SIMD811 !DIR$ SIMD 812 812 DO ij=ij_begin,ij_end 813 813 gradivu_e(ij+u_right,l)=-gradivu_e(ij+u_right,l)*cgraddiv … … 833 833 834 834 DO l=llb,lle 835 ! $SIMD835 !DIR$ SIMD 836 836 DO ij=ij_begin_ext,ij_end_ext 837 837 … … 847 847 848 848 DO l=llb,lle 849 ! $SIMD849 !DIR$ SIMD 850 850 DO ij=ij_begin,ij_end 851 851 … … 880 880 881 881 DO l=llb,lle 882 ! $SIMD882 !DIR$ SIMD 883 883 DO ij=ij_begin_ext,ij_end_ext 884 884 … … 895 895 896 896 DO l=llb,lle 897 ! $SIMD897 !DIR$ SIMD 898 898 DO ij=ij_begin,ij_end 899 899 … … 908 908 909 909 DO l=llb,lle 910 ! $SIMD910 !DIR$ SIMD 911 911 DO ij=ij_begin,ij_end 912 912 -
codes/icosagcm/trunk/src/euler_scheme.f90
r387 r487 48 48 ps=f_ps(ind) ; dps=f_dps(ind) ; 49 49 IF (is_omp_first_level) THEN 50 ! $SIMD50 !DIR$ SIMD 51 51 DO ij=ij_begin,ij_end 52 52 ps(ij)=ps(ij)+dt*dps(ij) … … 56 56 mass=f_mass(ind) ; dmass=f_dmass(ind) ; 57 57 DO l=ll_begin,ll_end 58 ! $SIMD58 !DIR$ SIMD 59 59 DO ij=ij_begin,ij_end 60 60 mass(ij,l)=mass(ij,l)+dt*dmass(ij,l) … … 72 72 73 73 DO l=ll_begin,ll_end 74 ! $SIMD74 !DIR$ SIMD 75 75 DO ij=ij_begin,ij_end 76 76 u(ij+u_right,l)=u(ij+u_right,l)+dt*du(ij+u_right,l) … … 102 102 103 103 DO l=ll_begin,ll_end 104 ! $SIMD104 !DIR$ SIMD 105 105 DO ij=ij_begin_ext,ij_end_ext 106 106 hfluxt(ij+u_right,l) = tau*hflux(ij+u_right,l) … … 112 112 IF(caldyn_eta==eta_mass) THEN ! no need for vertical fluxes if eta_lag 113 113 DO l=ll_begin,ll_endp1 114 ! $SIMD114 !DIR$ SIMD 115 115 DO ij=ij_begin,ij_end 116 116 wfluxt(ij,l) = tau*wflux(ij,l) … … 122 122 123 123 DO l=ll_begin,ll_end 124 ! $SIMD124 !DIR$ SIMD 125 125 DO ij=ij_begin_ext,ij_end_ext 126 126 hfluxt(ij+u_right,l) = hfluxt(ij+u_right,l)+tau*hflux(ij+u_right,l) … … 132 132 IF(caldyn_eta==eta_mass) THEN ! no need for vertical fluxes if eta_lag 133 133 DO l=ll_begin,ll_endp1 134 ! $SIMD134 !DIR$ SIMD 135 135 DO ij=ij_begin,ij_end 136 136 wfluxt(ij,l) = wfluxt(ij,l)+tau*wflux(ij,l) … … 160 160 IF(caldyn_eta==eta_mass .AND. is_omp_first_level) THEN ! update ps 161 161 ps=f_ps(ind) 162 ! $SIMD162 !DIR$ SIMD 163 163 DO ij=ij_begin,ij_end 164 164 ps(ij)=(ps(ij)-ptop)/g ! convert ps to column-integrated mass … … 168 168 u=f_u(ind) 169 169 DO l=ll_begin,ll_end 170 ! $SIMD170 !DIR$ SIMD 171 171 DO ij=ij_begin,ij_end 172 172 u(ij+u_right,l)=u(ij+u_right,l)*de(ij+u_right) … … 197 197 IF(caldyn_eta==eta_mass .AND. is_omp_first_level) THEN 198 198 ps=f_ps(ind) 199 ! $SIMD199 !DIR$ SIMD 200 200 DO ij=ij_begin,ij_end 201 201 ps(ij)=ptop+ps(ij)*g ! convert column-integrated mass to ps … … 205 205 u=f_u(ind) 206 206 DO l=ll_begin,ll_end 207 ! $SIMD207 !DIR$ SIMD 208 208 DO ij=ij_begin,ij_end 209 209 u(ij+u_right,l)=u(ij+u_right,l)/de(ij+u_right) -
codes/icosagcm/trunk/src/explicit_scheme.f90
r360 r487 78 78 79 79 IF (stage==1) THEN ! first stage : save model state in XXm1 80 ! $SIMD80 !DIR$ SIMD 81 81 DO ij=ij_begin,ij_end 82 82 psm1(ij)=ps(ij) … … 85 85 86 86 ! updates are of the form x1 := x0 + tau*f(x1) 87 ! $SIMD87 !DIR$ SIMD 88 88 DO ij=ij_begin,ij_end 89 89 ps(ij)=psm1(ij)+tau*dps(ij) … … 104 104 IF (stage==1) THEN ! first stage : save model state in XXm1 105 105 DO l=ll_begin,ll_end 106 ! $SIMD106 !DIR$ SIMD 107 107 DO ij=ij_begin,ij_end 108 108 massm1(ij,l)=mass(ij,l) … … 113 113 ! updates are of the form x1 := x0 + tau*f(x1) 114 114 DO l=ll_begin,ll_end 115 ! $SIMD115 !DIR$ SIMD 116 116 DO ij=ij_begin,ij_end 117 117 mass(ij,l)=massm1(ij,l)+tau*dmass(ij,l) … … 137 137 IF (stage==1) THEN ! first stage : save model state in XXm1 138 138 DO l=ll_begin,ll_end 139 ! $SIMD139 !DIR$ SIMD 140 140 DO ij=ij_begin,ij_end 141 141 um1(ij+u_right,l)=u(ij+u_right,l) … … 148 148 149 149 DO l=ll_begin,ll_end 150 ! $SIMD150 !DIR$ SIMD 151 151 DO ij=ij_begin,ij_end 152 152 u(ij+u_right,l)=um1(ij+u_right,l)+tau*du(ij+u_right,l)
Note: See TracChangeset
for help on using the changeset viewer.