Changeset 192 for codes/icosagcm/trunk
- Timestamp:
- 06/25/14 15:00:24 (10 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/etat0.f90
r186 r192 7 7 SUBROUTINE etat0(f_ps,f_mass,f_phis,f_theta_rhodz,f_u, f_q) 8 8 USE icosa 9 USE mpipara, ONLY : is_mpi_root 9 10 USE disvert_mod 10 11 USE etat0_williamson_mod, ONLY : etat0_williamson_new … … 61 62 CALL etat0_dcmip3(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 62 63 CASE ('dcmip4') 64 IF(nqtot<2) THEN 65 IF (is_mpi_root) THEN 66 PRINT *, "nqtot must be at least 2 for test case DCMIP4" 67 END IF 68 STOP 69 END IF 63 70 CALL etat0_dcmip4(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 64 71 CASE ('dcmip5') -
codes/icosagcm/trunk/src/etat0_dcmip5.f90
r186 r192 96 96 lonc=Pi 97 97 98 Tv0=T0 /(1+0.608*q0)98 Tv0=T0*(1+0.608*q0) 99 99 Tvt=Tv0-Gamma*zt 100 100 -
codes/icosagcm/trunk/src/physics_dcmip.f90
r186 r192 16 16 IMPLICIT NONE 17 17 18 testcase=1 18 testcase=1 ! OK for 4.2 (moist baroclinic instability) 19 19 CALL getin("dcmip_physics",testcase) 20 20 CALL allocate_field(f_out_i,field_t,type_real,llm) … … 106 106 INTEGER :: i,j,l,ij 107 107 108 PRINT *,'Entering in DCMIP physics'108 ! PRINT *,'Entering in DCMIP physics' 109 109 CALL compute_pression(ps,p,0) 110 110 CALL compute_exner(ps,p,pks,pk,0) … … 112 112 CALL compute_geopotential(phis,pks,pk,theta,phi,0) 113 113 CALL compute_theta_rhodz2temperature(ps,theta_rhodz,T,0) 114 CALL compute_wind_centered(ue,uc) 115 CALL compute_wind_centered_lonlat_compound(uc, u, v) 116 114 ! Reconstruct wind vector at hexagons 115 CALL compute_wind_centered(ue,uc) 116 CALL compute_wind_centered_lonlat_compound(uc, u, v) 117 118 ! Convert from Tv to T 119 DO l=1,llm 120 DO j=jj_begin,jj_end 121 DO i=ii_begin,ii_end 122 ij=(j-1)*iim+i 123 T(ij,l)=T(ij,l)/(1+0.608*q(ij,l)) 124 ENDDO 125 ENDDO 126 ENDDO 127 117 128 DO j=jj_begin,jj_end 118 129 DO i=ii_begin,ii_end … … 122 133 ENDDO 123 134 135 ! bottom-up indexing (DYNAMICO) : u,utemp, v,vtemp 136 ! top-down vertical indexing (DCMIP) : ufi, vfi, ... 137 ! => copy fields and mirror vertical index 124 138 DO l=1,llm+1 125 139 DO j=jj_begin,jj_end … … 131 145 ENDDO 132 146 147 ! Pressure inside layers 133 148 DO l=1,llm 134 149 DO j=jj_begin,jj_end … … 140 155 ENDDO 141 156 157 ! Pressure difference between two layers 142 158 DO l=1,llm 143 159 DO j=jj_begin,jj_end … … 149 165 ENDDO 150 166 151 152 ! ufi=u 153 ! vfi=v 154 155 DO l=1,llm 156 DO j=jj_begin,jj_end 157 DO i=ii_begin,ii_end 158 ij=(j-1)*iim+i 159 T(ij,l)=T(ij,l)/(1+0.608*q(ij,l)) 160 ENDDO 161 ENDDO 162 ENDDO 163 167 ! Copy T,u,v,q for input to physics 164 168 DO l=1,llm 165 169 DO j=jj_begin,jj_end … … 174 178 ENDDO 175 179 176 ! q=0177 ! out_i=T178 179 180 CALL simple_physics(iim*jjm, llm, dt, lat, tfi, qfi , ufi, vfi, pmid, pint, pdel, 1/pdel, ps, precl, testcase) 180 181 182 ! Copy back T,u,v,q and mirror vertical index 181 183 DO l=1,llm 182 184 DO j=jj_begin,jj_end … … 192 194 193 195 196 ! Convert back T to Tv 194 197 DO l=1,llm 195 198 DO j=jj_begin,jj_end … … 201 204 ENDDO 202 205 203 ! out_i=q 204 206 ! Compute velocity update at hexagons 205 207 utemp=utemp-u 206 208 vtemp=vtemp-v 207 209 210 ! lon-lat -> 3D 208 211 DO l=1,llm 209 212 DO j=jj_begin,jj_end … … 215 218 ENDDO 216 219 217 ! out_i=ufi 218 220 ! Update velocity at velocity points 219 221 DO l=1,llm 220 222 DO j=jj_begin,jj_end … … 519 521 end do 520 522 521 IF (test==0) return522 523 !=============================================================================== 523 524 ! Send variables to history file - THIS PROCESS WILL BE MODEL SPECIFIC
Note: See TracChangeset
for help on using the changeset viewer.