Changeset 521 for codes/icosagcm/trunk/src
- Timestamp:
- 01/17/17 16:27:34 (7 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/caldyn_kernels.f90
r519 r521 60 60 !DIR$ SIMD 61 61 DO ij=ij_begin_ext,ij_end_ext 62 IF(DEC) THEN ! ps is actually Ms 63 m = mass_dak(l)+(ps(ij)*g+ptop)*mass_dbk(l) 64 ELSE 65 m = mass_dak(l)+ps(ij)*mass_dbk(l) 66 END IF 62 m = mass_dak(l)+(ps(ij)*g+ptop)*mass_dbk(l) ! ps is actually Ms 67 63 rhodz(ij,l) = m/g 68 64 theta(ij,l) = theta_rhodz(ij,l)/rhodz(ij,l) … … 85 81 !DIR$ SIMD 86 82 DO ij=ij_begin_ext,ij_end_ext 87 IF(DEC) THEN 88 etav= 1./Av(ij+z_up)*( ne_rup * u(ij+u_rup,l) & 89 + ne_left * u(ij+t_rup+u_left,l) & 90 - ne_lup * u(ij+u_lup,l) ) 91 92 hv = Riv2(ij,vup) * rhodz(ij,l) & 93 + Riv2(ij+t_rup,vldown) * rhodz(ij+t_rup,l) & 94 + Riv2(ij+t_lup,vrdown) * rhodz(ij+t_lup,l) 95 qv(ij+z_up,l) = ( etav+fv(ij+z_up) )/hv 96 97 etav = 1./Av(ij+z_down)*( ne_ldown * u(ij+u_ldown,l) & 98 + ne_right * u(ij+t_ldown+u_right,l) & 99 - ne_rdown * u(ij+u_rdown,l) ) 100 hv = Riv2(ij,vdown) * rhodz(ij,l) & 101 + Riv2(ij+t_ldown,vrup) * rhodz(ij+t_ldown,l) & 102 + Riv2(ij+t_rdown,vlup) * rhodz(ij+t_rdown,l) 103 qv(ij+z_down,l) =( etav+fv(ij+z_down) )/hv 104 ELSE 105 etav= 1./Av(ij+z_up)*( ne_rup * u(ij+u_rup,l) * de(ij+u_rup) & 106 + ne_left * u(ij+t_rup+u_left,l) * de(ij+t_rup+u_left) & 107 - ne_lup * u(ij+u_lup,l) * de(ij+u_lup) ) 108 109 hv = Riv2(ij,vup) * rhodz(ij,l) & 110 + Riv2(ij+t_rup,vldown) * rhodz(ij+t_rup,l) & 111 + Riv2(ij+t_lup,vrdown) * rhodz(ij+t_lup,l) 112 qv(ij+z_up,l) = ( etav+fv(ij+z_up) )/hv 113 114 etav = 1./Av(ij+z_down)*( ne_ldown * u(ij+u_ldown,l) * de(ij+u_ldown) & 115 + ne_right * u(ij+t_ldown+u_right,l) * de(ij+t_ldown+u_right) & 116 - ne_rdown * u(ij+u_rdown,l) * de(ij+u_rdown) ) 117 hv = Riv2(ij,vdown) * rhodz(ij,l) & 118 + Riv2(ij+t_ldown,vrup) * rhodz(ij+t_ldown,l) & 119 + Riv2(ij+t_rdown,vlup) * rhodz(ij+t_rdown,l) 120 qv(ij+z_down,l) =( etav+fv(ij+z_down) )/hv 121 END IF 83 etav= 1./Av(ij+z_up)*( ne_rup * u(ij+u_rup,l) & 84 + ne_left * u(ij+t_rup+u_left,l) & 85 - ne_lup * u(ij+u_lup,l) ) 86 hv = Riv2(ij,vup) * rhodz(ij,l) & 87 + Riv2(ij+t_rup,vldown) * rhodz(ij+t_rup,l) & 88 + Riv2(ij+t_lup,vrdown) * rhodz(ij+t_lup,l) 89 qv(ij+z_up,l) = ( etav+fv(ij+z_up) )/hv 90 91 etav = 1./Av(ij+z_down)*( ne_ldown * u(ij+u_ldown,l) & 92 + ne_right * u(ij+t_ldown+u_right,l) & 93 - ne_rdown * u(ij+u_rdown,l) ) 94 hv = Riv2(ij,vdown) * rhodz(ij,l) & 95 + Riv2(ij+t_ldown,vrup) * rhodz(ij+t_ldown,l) & 96 + Riv2(ij+t_rdown,vlup) * rhodz(ij+t_rdown,l) 97 qv(ij+z_down,l) =( etav+fv(ij+z_down) )/hv 122 98 ENDDO 123 99 -
codes/icosagcm/trunk/src/caldyn_kernels_base.f90
r479 r521 7 7 IMPLICIT NONE 8 8 PRIVATE 9 10 LOGICAL, PARAMETER, PUBLIC :: DEC = .TRUE.11 9 12 10 INTEGER, PARAMETER,PUBLIC :: energy=1, enstrophy=2 … … 219 217 DO ij=ij_begin,ij_end 220 218 ! dps/dt = -int(div flux)dz 221 IF(DEC) THEN 222 dps(ij) = convm(ij,1) 223 ELSE 224 dps(ij) = convm(ij,1) * g 225 END IF 219 dps(ij) = convm(ij,1) 226 220 ENDDO 227 221 ENDIF -
codes/icosagcm/trunk/src/caldyn_kernels_hevi.f90
r519 r521 32 32 !DIR$ SIMD 33 33 DO ij=ij_begin_ext,ij_end_ext 34 IF(DEC) THEN ! ps is actually Ms 35 m = mass_dak(l)+(ps(ij)*g+ptop)*mass_dbk(l) 36 ELSE 37 m = mass_dak(l)+ps(ij)*mass_dbk(l) 38 END IF 34 m = mass_dak(l)+(ps(ij)*g+ptop)*mass_dbk(l) ! ps is actually Ms 39 35 rhodz(ij,l) = m/g 40 36 END DO … … 69 65 !DIR$ SIMD 70 66 DO ij=ij_begin_ext,ij_end_ext 71 IF(DEC) THEN 72 etav= 1./Av(ij+z_up)*( ne_rup * u(ij+u_rup,l) & 73 + ne_left * u(ij+t_rup+u_left,l) & 74 - ne_lup * u(ij+u_lup,l) ) 75 76 hv = Riv2(ij,vup) * rhodz(ij,l) & 77 + Riv2(ij+t_rup,vldown) * rhodz(ij+t_rup,l) & 78 + Riv2(ij+t_lup,vrdown) * rhodz(ij+t_lup,l) 79 qv(ij+z_up,l) = ( etav+fv(ij+z_up) )/hv 80 81 etav = 1./Av(ij+z_down)*( ne_ldown * u(ij+u_ldown,l) & 82 + ne_right * u(ij+t_ldown+u_right,l) & 83 - ne_rdown * u(ij+u_rdown,l) ) 84 hv = Riv2(ij,vdown) * rhodz(ij,l) & 85 + Riv2(ij+t_ldown,vrup) * rhodz(ij+t_ldown,l) & 86 + Riv2(ij+t_rdown,vlup) * rhodz(ij+t_rdown,l) 87 qv(ij+z_down,l) =( etav+fv(ij+z_down) )/hv 88 ELSE 89 etav= 1./Av(ij+z_up)*( ne_rup * u(ij+u_rup,l) * de(ij+u_rup) & 90 + ne_left * u(ij+t_rup+u_left,l) * de(ij+t_rup+u_left) & 91 - ne_lup * u(ij+u_lup,l) * de(ij+u_lup) ) 92 93 hv = Riv2(ij,vup) * rhodz(ij,l) & 94 + Riv2(ij+t_rup,vldown) * rhodz(ij+t_rup,l) & 95 + Riv2(ij+t_lup,vrdown) * rhodz(ij+t_lup,l) 96 qv(ij+z_up,l) = ( etav+fv(ij+z_up) )/hv 97 98 etav = 1./Av(ij+z_down)*( ne_ldown * u(ij+u_ldown,l) * de(ij+u_ldown) & 99 + ne_right * u(ij+t_ldown+u_right,l) * de(ij+t_ldown+u_right) & 100 - ne_rdown * u(ij+u_rdown,l) * de(ij+u_rdown) ) 101 hv = Riv2(ij,vdown) * rhodz(ij,l) & 102 + Riv2(ij+t_ldown,vrup) * rhodz(ij+t_ldown,l) & 103 + Riv2(ij+t_rdown,vlup) * rhodz(ij+t_rdown,l) 104 qv(ij+z_down,l) =( etav+fv(ij+z_down) )/hv 105 END IF 67 etav= 1./Av(ij+z_up)*( ne_rup * u(ij+u_rup,l) & 68 + ne_left * u(ij+t_rup+u_left,l) & 69 - ne_lup * u(ij+u_lup,l) ) 70 hv = Riv2(ij,vup) * rhodz(ij,l) & 71 + Riv2(ij+t_rup,vldown) * rhodz(ij+t_rup,l) & 72 + Riv2(ij+t_lup,vrdown) * rhodz(ij+t_lup,l) 73 qv(ij+z_up,l) = ( etav+fv(ij+z_up) )/hv 74 75 etav = 1./Av(ij+z_down)*( ne_ldown * u(ij+u_ldown,l) & 76 + ne_right * u(ij+t_ldown+u_right,l) & 77 - ne_rdown * u(ij+u_rdown,l) ) 78 hv = Riv2(ij,vdown) * rhodz(ij,l) & 79 + Riv2(ij+t_ldown,vrup) * rhodz(ij+t_ldown,l) & 80 + Riv2(ij+t_rdown,vlup) * rhodz(ij+t_rdown,l) 81 qv(ij+z_down,l) =( etav+fv(ij+z_down) )/hv 106 82 ENDDO 107 83 -
codes/icosagcm/trunk/src/hevi_scheme.f90
r480 r521 4 4 USE field_mod 5 5 USE euler_scheme_mod 6 USE caldyn_kernels_base_mod, ONLY : DEC7 6 IMPLICIT NONE 8 7 PRIVATE … … 60 59 REAL(rstd),POINTER :: hflux(:,:),wflux(:,:),hfluxt(:,:),wfluxt(:,:) 61 60 62 IF(DEC)CALL legacy_to_DEC(f_ps, f_u)61 CALL legacy_to_DEC(f_ps, f_u) 63 62 DO j=1,nb_stage 64 63 CALL caldyn_hevi((j==1) .AND. (MOD(it,itau_out)==0), taujj(j), & … … 97 96 END DO 98 97 END DO 99 IF(DEC)CALL DEC_to_legacy(f_ps, f_u)98 CALL DEC_to_legacy(f_ps, f_u) 100 99 END SUBROUTINE HEVI_scheme 101 100
Note: See TracChangeset
for help on using the changeset viewer.