Changeset 295 for codes/icosagcm/trunk/src/etat0.f90
- Timestamp:
- 10/31/14 14:52:01 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/etat0.f90
r286 r295 25 25 USE etat0_dcmip4_mod, ONLY : etat0_dcmip4=>etat0 26 26 USE etat0_heldsz_mod, ONLY : etat0_heldsz=>etat0 27 USE dynetat0_gcm_mod, ONLY : dynetat0_start=>etat028 USE dynetat0_hz_mod, ONLY : dynetat0_hz=>etat029 27 USE etat0_start_file_mod, ONLY : etat0_start_file=>etat0 30 28 … … 80 78 CASE ('dcmip3') 81 79 CALL etat0_dcmip3(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 82 80 CASE ('dcmip4') 83 81 IF(nqtot<2) THEN 84 82 IF (is_mpi_root) THEN … … 87 85 STOP 88 86 END IF 89 CALL etat0_dcmip4(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 90 CASE ('readnf_start') 91 print*,"readnf_start used" 92 CALL dynetat0_start(f_ps,f_phis,f_theta_rhodz,f_u,f_q) 93 CASE ('readnf_hz') 94 print*,"readnf_hz used" 95 CALL dynetat0_hz(f_ps,f_phis,f_theta_rhodz,f_u,f_q) 87 CALL etat0_dcmip4(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 96 88 CASE DEFAULT 97 89 PRINT*, 'Bad selector for variable etat0 <',etat0_type, & … … 114 106 115 107 SUBROUTINE etat0_collocated(f_phis,f_ps,f_mass,f_theta_rhodz,f_u, f_q) 108 USE theta2theta_rhodz_mod 116 109 IMPLICIT NONE 117 110 TYPE(t_field),POINTER :: f_ps(:) … … 119 112 TYPE(t_field),POINTER :: f_phis(:) 120 113 TYPE(t_field),POINTER :: f_theta_rhodz(:) 114 TYPE(t_field),POINTER :: f_temp(:) 121 115 TYPE(t_field),POINTER :: f_u(:) 122 116 TYPE(t_field),POINTER :: f_q(:) … … 126 120 REAL(rstd),POINTER :: phis(:) 127 121 REAL(rstd),POINTER :: theta_rhodz(:,:) 122 REAL(rstd),POINTER :: temp(:,:) 128 123 REAL(rstd),POINTER :: u(:,:) 129 124 REAL(rstd),POINTER :: q(:,:,:) … … 138 133 phis=f_phis(ind) 139 134 theta_rhodz=f_theta_rhodz(ind) 135 temp=f_temp(ind) 140 136 u=f_u(ind) 141 137 q=f_q(ind) 142 CALL compute_etat0_collocated(ps,mass, phis, theta_rhodz, u, q) 138 139 IF( TRIM(etat0_type)=='williamson91.6' ) THEN 140 CALL compute_etat0_collocated(ps,mass, phis, theta_rhodz, u, q) 141 ELSE 142 CALL compute_etat0_collocated(ps,mass, phis, temp, u, q) 143 ENDIF 143 144 ENDDO 145 146 IF( TRIM(etat0_type)/='williamson91.6' ) CALL temperature2theta_rhodz(f_ps,f_temp,f_theta_rhodz) 147 148 144 149 END SUBROUTINE etat0_collocated 145 150 146 SUBROUTINE compute_etat0_collocated(ps,mass, phis, theta_rhodz, u, q) 147 USE theta2theta_rhodz_mod 151 SUBROUTINE compute_etat0_collocated(ps,mass, phis, temp_i, u, q) 148 152 USE wind_mod 149 153 USE etat0_jablonowsky06_mod, ONLY : compute_jablonowsky06 => compute_etat0 … … 154 158 REAL(rstd),INTENT(INOUT) :: mass(iim*jjm,llm) 155 159 REAL(rstd),INTENT(OUT) :: phis(iim*jjm) 156 REAL(rstd),INTENT(OUT) :: t heta_rhodz(iim*jjm,llm)160 REAL(rstd),INTENT(OUT) :: temp_i(iim*jjm,llm) 157 161 REAL(rstd),INTENT(OUT) :: u(3*iim*jjm,llm) 158 162 REAL(rstd),INTENT(OUT) :: q(iim*jjm,llm,nqtot) 159 163 160 REAL(rstd) :: temp_i(iim*jjm,llm) 164 REAL(rstd) :: lon_i(iim*jjm) 165 REAL(rstd) :: lat_i(iim*jjm) 161 166 REAL(rstd) :: ulon_i(iim*jjm,llm) 162 167 REAL(rstd) :: ulat_i(iim*jjm,llm) 163 168 169 REAL(rstd) :: lon_e(3*iim*jjm) 170 REAL(rstd) :: lat_e(3*iim*jjm) 164 171 REAL(rstd) :: ps_e(3*iim*jjm) 165 172 REAL(rstd) :: mass_e(3*iim*jjm,llm) … … 183 190 CALL compute_dcmip5(3*iim*jjm,lon_e,lat_e, phis_e, ps_e, temp_e, ulon_e, ulat_e, q_e) 184 191 CASE('williamson91.6') 185 CALL compute_w91_6(iim*jjm,lon_i,lat_i, phis, mass(:,1), t heta_rhodz(:,1), ulon_i(:,1), ulat_i(:,1))192 CALL compute_w91_6(iim*jjm,lon_i,lat_i, phis, mass(:,1), temp_i(:,1), ulon_i(:,1), ulat_i(:,1)) 186 193 CALL compute_w91_6(3*iim*jjm,lon_e,lat_e, phis_e, mass_e(:,1), temp_e(:,1), ulon_e(:,1), ulat_e(:,1)) 187 194 END SELECT 188 195 189 SELECT CASE (TRIM(etat0_type))190 CASE('williamson91.6')191 ! Do nothing192 CASE DEFAULT193 CALL compute_temperature2theta_rhodz(ps,temp_i,theta_rhodz,0)194 END SELECT195 196 196 CALL compute_wind_perp_from_lonlat_compound(ulon_e, ulat_e, u) 197 197
Note: See TracChangeset
for help on using the changeset viewer.