Changeset 668 for codes/icosagcm/trunk/src/diagnostics
- Timestamp:
- 01/27/18 00:10:07 (6 years ago)
- Location:
- codes/icosagcm/trunk/src/diagnostics
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/diagnostics/observable.f90
r605 r668 15 15 TYPE(t_field),POINTER, SAVE :: f_theta(:) 16 16 17 PUBLIC init_observable, write_output_fields_basic, f_theta, f_buf_i 17 PUBLIC init_observable, write_output_fields_basic, & 18 f_theta, f_buf_i, f_buf_ulon, f_buf_ulat 18 19 19 20 CONTAINS -
codes/icosagcm/trunk/src/diagnostics/wind.F90
r599 r668 12 12 CONTAINS 13 13 14 SUBROUTINE un2ulonlat(f_u, f_ulon, f_ulat )14 SUBROUTINE un2ulonlat(f_u, f_ulon, f_ulat, scale_) 15 15 TYPE(t_field), POINTER :: f_u(:) ! IN : normal velocity components on edges 16 16 TYPE(t_field), POINTER :: f_ulon(:), f_ulat(:) ! OUT : velocity reconstructed at hexagons 17 REAL(rstd),POINTER :: u(:,:), ulon(:,:), ulat(:,:) 17 REAL(rstd),POINTER :: u(:,:), ulon(:,:), ulat(:,:) 18 REAL(rstd), OPTIONAL :: scale_ 19 REAL(rstd) :: scale 18 20 INTEGER :: ind 19 21 scale = MERGE(scale_, 1., PRESENT(scale_)) 20 22 DO ind=1,ndomain 21 23 IF (.NOT. assigned_domain(ind)) CYCLE … … 25 27 ulon=f_ulon(ind) 26 28 ulat=f_ulat(ind) 27 CALL compute_un2ulonlat(u,ulon, ulat )29 CALL compute_un2ulonlat(u,ulon, ulat, scale) 28 30 END DO 29 31 … … 49 51 END SUBROUTINE ulonlat2un 50 52 51 SUBROUTINE compute_wind_centered(ue,ucenter )53 SUBROUTINE compute_wind_centered(ue,ucenter,scale_) 52 54 REAL(rstd) :: ue(3*iim*jjm,llm) 53 55 REAL(rstd) :: ucenter(iim*jjm,llm,3) 56 REAL(rstd), INTENT(IN), OPTIONAL :: scale_ 54 57 INTEGER :: ij,l 55 REAL(rstd) , PARAMETER :: scale=1.56 REAL(rstd) :: fac, ue_le, cx,cy,cz, ux,uy,uz58 REAL(rstd) :: scale,fac, ue_le, cx,cy,cz, ux,uy,uz 59 scale = MERGE(scale_, 1., PRESENT(scale_)) 57 60 #include "../kernels/wind_centered.k90" 58 61 END SUBROUTINE compute_wind_centered … … 328 331 329 332 330 SUBROUTINE compute_un2ulonlat(un, ulon, ulat )333 SUBROUTINE compute_un2ulonlat(un, ulon, ulat, scale) 331 334 REAL(rstd),INTENT(IN) :: un(3*iim*jjm,llm) 332 335 REAL(rstd),INTENT(OUT) :: ulon(iim*jjm,llm) 333 336 REAL(rstd),INTENT(OUT) :: ulat(iim*jjm,llm) 334 335 337 REAL(rstd) :: uc(iim*jjm,llm,3) 336 337 CALL compute_wind_centered(un,uc )338 REAL(rstd) :: scale 339 CALL compute_wind_centered(un,uc,scale) 338 340 CALL compute_wind_centered_lonlat_compound(uc, ulon, ulat) 339 341
Note: See TracChangeset
for help on using the changeset viewer.