Changeset 579
- Timestamp:
- 10/13/17 15:25:25 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/diagnostics/observable.f90
r533 r579 5 5 6 6 TYPE(t_field),POINTER, SAVE :: f_buf_i(:), & 7 f_buf_ uh(:), & ! horizontal velocity, different from prognostic velocity if NH7 f_buf_Fel(:), f_buf_uh(:), & ! horizontal velocity, different from prognostic velocity if NH 8 8 f_buf_ulon(:), f_buf_ulat(:), & 9 9 f_buf_u3d(:) ! unused, remove ? … … 28 28 CALL allocate_field(f_buf_ulat,field_t,type_real,llm, name="buf_ulat") 29 29 CALL allocate_field(f_buf_uh, field_u,type_real,llm, name="buf_uh") 30 CALL allocate_field(f_buf_Fel, field_u,type_real,llm+1, name="buf_F_el") 30 31 CALL allocate_field(f_buf_v, field_z,type_real,llm, name="buf_v") 31 32 CALL allocate_field(f_buf_s, field_t,type_real, name="buf_s") … … 60 61 61 62 IF(init) THEN 63 IF(is_master) PRINT *, 'Creating output files ...' 62 64 scalar(1)=dt 63 65 IF (is_omp_master) CALL xios_send_field("timestep", scalar) … … 74 76 75 77 CALL output_field("phis",f_phis) 76 CALL output_field("Ai",geom%Ai) 78 CALL output_field("Ai",geom%Ai) 79 IF(is_master) PRINT *, '... done creating output files. Writing initial condition ...' 77 80 END IF 78 81 … … 120 123 CALL output_field("geopot_init",f_geopot) 121 124 CALL output_field("q_init",f_q) 125 IF(is_master) PRINT *, 'Done writing initial condition ...' 122 126 ELSE 123 127 CALL output_field("uz",f_buf_i) … … 165 169 f_u(:), f_W(:), f_uz(:), & ! IN 166 170 f_uh(:) ! OUT 167 REAL(rstd),POINTER :: geopot(:,:), ps(:), rhodz(:,:), u(:,:), W(:,:), uh(:,:), uz(:,:) 171 REAL(rstd),POINTER :: geopot(:,:), ps(:), rhodz(:,:), u(:,:), W(:,:), uh(:,:), uz(:,:), F_el(:,:) 168 172 INTEGER :: ind 169 173 … … 177 181 W = f_W(ind) 178 182 uh = f_uh(ind) 183 F_el = f_buf_Fel(ind) 179 184 IF(caldyn_eta==eta_mass) THEN 180 185 ps=f_ps(ind) … … 182 187 END IF 183 188 uz = f_uz(ind) 184 CALL compute_prognostic_vel_to_horiz(geopot,rhodz,u,W,uh,uz) 189 !$OMP BARRIER 190 CALL compute_prognostic_vel_to_horiz(geopot,rhodz,u,W, F_el, uh,uz) 191 !$OMP BARRIER 185 192 END DO 186 193 END SUBROUTINE progonostic_vel_to_horiz 187 194 188 SUBROUTINE compute_prognostic_vel_to_horiz(Phi, rhodz, u, W, uh, uz)195 SUBROUTINE compute_prognostic_vel_to_horiz(Phi, rhodz, u, W, F_el, uh, uz) 189 196 USE omp_para 190 197 REAL(rstd), INTENT(IN) :: Phi(iim*jjm,llm+1) … … 220 227 END DO 221 228 229 ! We need a barrier here because we compute F_el above and do a vertical average below 230 !$OMP BARRIER 231 222 232 DO l=ll_begin, ll_end ! compute on k levels (full levels) 223 233 DO ij=ij_begin_ext, ij_end_ext
Note: See TracChangeset
for help on using the changeset viewer.