Changeset 381
- Timestamp:
- 05/25/16 10:00:49 (8 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 4 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/physics.f90
r347 r381 5 5 PRIVATE 6 6 7 INTEGER, PARAMETER :: phys_none=0, phys_HS94=1, phys_DCMIP=2, phys_lmdz_generic=3, phys_LB2012=4, phys_external=5 7 INTEGER, PARAMETER :: phys_none=0, phys_HS94=1, phys_DCMIP=2, phys_lmdz_generic=3, phys_LB2012=4, phys_external=5, phys_DCMIP2016=6 8 8 9 9 INTEGER :: phys_type … … 25 25 USE physics_interface_mod 26 26 USE physics_dcmip_mod, ONLY : init_physics_dcmip=>init_physics 27 USE physics_dcmip2016_mod, ONLY : init_physics_dcmip2016=>init_physics 27 28 USE etat0_venus_mod, ONLY : init_phys_venus=>init_physics 28 29 USE physics_lmdz_generic_mod, ONLY : init_physics_lmdz_generic=>init_physics … … 57 58 CALL init_pack_after ! Defines Ai, lon, lat in physics_inout 58 59 phys_type = phys_DCMIP 60 CASE ('dcmip2016') 61 CALL allocate_field(f_dulon,field_t,type_real,llm, name='dulon') 62 CALL allocate_field(f_dulat,field_t,type_real,llm, name='dulat') 63 CALL allocate_field(f_temp,field_t,type_real,llm, name='temp') 64 CALL allocate_field(f_temp,field_t,type_real,llm, name='temp') 65 CALL init_pack_before ! Compute physics_inout%ngrid and offsets used by pack/unpack 66 CALL init_physics_dcmip2016 67 CALL init_pack_after ! Defines Ai, lon, lat in physics_inout 68 phys_type = phys_DCMIP2016 59 69 CASE DEFAULT 60 70 IF(is_mpi_root) PRINT*, 'init_physics : Bad selector for variable physics <',& … … 73 83 USE physics_external_mod, ONLY : physics_external => physics 74 84 USE physics_dcmip_mod, ONLY : write_physics_dcmip => write_physics 85 USE physics_dcmip2016_mod, ONLY : write_physics_dcmip2016 => write_physics 75 86 USE etat0_heldsz_mod 76 87 USE etat0_venus_mod, ONLY : phys_venus => physics … … 119 130 CASE (phys_DCMIP) 120 131 CALL write_physics_dcmip 132 CASE (phys_DCMIP2016) 133 CALL write_physics_dcmip2016 121 134 END SELECT 122 135 END IF … … 128 141 USE physics_interface_mod 129 142 USE physics_dcmip_mod, ONLY : full_physics_dcmip => full_physics 143 USE physics_dcmip2016_mod, ONLY : full_physics_dcmip2016 => full_physics 130 144 USE theta2theta_rhodz_mod 131 145 USE mpipara … … 147 161 148 162 CALL theta_rhodz2temperature(f_ps,f_theta_rhodz,f_temp) 149 163 150 164 DO ind=1,ndomain 151 165 IF (.NOT. assigned_domain(ind)) CYCLE … … 163 177 CASE (phys_DCMIP) 164 178 CALL full_physics_dcmip 179 CASE (phys_DCMIP2016) 180 CALL full_physics_dcmip2016 165 181 CASE DEFAULT 166 182 IF(is_mpi_master) PRINT *,'Internal error : illegal value of phys_type', phys_type … … 197 213 END SUBROUTINE physics_column 198 214 199 SUBROUTINE pack_physics(info, phis, ps, temp, ue, q )215 SUBROUTINE pack_physics(info, phis, ps, temp, ue, q ) 200 216 USE icosa 201 217 USE wind_mod … … 203 219 USE theta2theta_rhodz_mod 204 220 USE physics_interface_mod 221 USE exner_mod 205 222 IMPLICIT NONE 206 223 TYPE(t_pack_info) :: info … … 208 225 REAL(rstd) :: ps(iim*jjm) 209 226 REAL(rstd) :: temp(iim*jjm,llm) 227 REAL(rstd) :: pks(iim*jjm) 228 REAL(rstd) :: pk(iim*jjm,llm) 210 229 REAL(rstd) :: ue(3*iim*jjm,llm) 211 230 REAL(rstd) :: q(iim*jjm,llm,nqtot) … … 219 238 CALL compute_pression(ps,p,0) 220 239 !$OMP BARRIER 240 CALL compute_exner(ps,p,pks,pk,0) 241 !$OMP BARRIER 221 242 CALL compute_wind_centered(ue,uc) 222 243 CALL compute_wind_centered_lonlat_compound(uc, ulon, ulat) … … 224 245 CALL pack_domain(info, phis, physics_inout%phis) 225 246 CALL pack_domain(info, p, physics_inout%p) 247 CALL pack_domain(info, pk, physics_inout%pk) 226 248 CALL pack_domain(info, Temp, physics_inout%Temp) 227 249 CALL pack_domain(info, ulon, physics_inout%ulon) -
codes/icosagcm/trunk/src/physics_interface.f90
r286 r381 11 11 REAL(rstd), DIMENSION(:), POINTER :: Ai, lon, lat, phis 12 12 ! Input, time-dependent 13 REAL(rstd), DIMENSION(:,:), POINTER :: p, Temp, ulon, ulat13 REAL(rstd), DIMENSION(:,:), POINTER :: p, pk, Temp, ulon, ulat 14 14 REAL(rstd), DIMENSION(:,:,:), POINTER :: q 15 15 ! Output arrays
Note: See TracChangeset
for help on using the changeset viewer.