Changeset 353
- Timestamp:
- 08/06/15 10:48:45 (9 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/disvert_dcmip3.f90
r209 r353 1 1 MODULE disvert_dcmip31_mod 2 2 USE icosa 3 3 IMPLICIT NONE 4 PRIVATE 5 4 6 REAL(rstd), SAVE, ALLOCATABLE,TARGET :: ap(:) 5 7 !$OMP THREADPRIVATE(ap) … … 9 11 !$OMP THREADPRIVATE(presnivs) 10 12 13 PUBLIC :: ap,bp,presnivs, init_disvert 14 11 15 CONTAINS 12 16 !========================================================================= 13 17 14 18 SUBROUTINE init_disvert 15 USE icosa16 IMPLICIT NONE17 18 19 ALLOCATE(ap(llm+1)) 19 20 ALLOCATE(bp(llm+1)) 20 21 ALLOCATE(presnivs(llm)) 21 22 22 CALL disvert(ap,bp,presnivs) 23 24 END SUBROUTINE init_disvert 23 END SUBROUTINE init_disvert 25 24 26 25 SUBROUTINE disvert(ap,bp,presnivs) 27 USE icosa28 26 USE mpipara 29 IMPLICIT NONE30 27 REAL(rstd),INTENT(OUT) :: ap(:) 31 28 REAL(rstd),INTENT(OUT) :: bp(:) -
codes/icosagcm/trunk/src/etat0.f90
r346 r353 188 188 189 189 INTEGER :: l,i,j,ij 190 191 !$OMP BARRIER 190 192 191 193 SELECT CASE (TRIM(etat0_type)) … … 219 221 END SELECT 220 222 223 !$OMP BARRIER 224 221 225 CALL compute_wind_perp_from_lonlat_compound(ulon_e, ulat_e, u) 222 226 -
codes/icosagcm/trunk/src/etat0_dcmip1.f90
r344 r353 105 105 106 106 SUBROUTINE compute_etat0_ncar(icase,ngrid,lon,lat, q) 107 USE icosa108 107 USE disvert_mod 109 IMPLICIT NONE108 USE omp_para 110 109 INTEGER, INTENT(IN) :: icase, ngrid 111 110 REAL(rstd),INTENT(IN) :: lon(ngrid),lat(ngrid) … … 158 157 159 158 SUBROUTINE cosine_bell_1(hx) 160 IMPLICIT NONE161 159 REAL(rstd) :: hx(ngrid,llm) 162 160 REAL(rstd) :: rr1,rr2 163 161 INTEGER :: n,l 164 DO l= 1,llm162 DO l=ll_begin,ll_end 165 163 DO n=1,ngrid 166 164 CALL dist_lonlat(lon0,lat0,lon(n),lat(n),rr1) ! GC distance from center … … 181 179 REAL(rstd) :: rr1,rr2,dd1,dd2,dd1t1,dd1t2,dd2t1 182 180 INTEGER :: n,l 183 DO l= 1,llm181 DO l=ll_begin,ll_end 184 182 DO n=1,ngrid 185 183 CALL dist_lonlat(lonc1,latc1,lon(n),lat(n),rr1) ! GC distance from center … … 208 206 REAL(rstd) :: rr1,rr2,dd1,dd2,dd1t1,dd1t2,dd2t1 209 207 INTEGER :: n,l 210 DO l= 1,llm208 DO l=ll_begin,ll_end 211 209 DO n=1,ngrid 212 210 CALL dist_lonlat(lonc1,latc1,lon(n),lat(n),rr1) ! GC distance from center … … 245 243 INTEGER :: n,l 246 244 247 DO l= 1,llm245 DO l=ll_begin,ll_end 248 246 IF ( ( zz1 .LT. zrl(l) ) .and. ( zrl(l) .LT. zz2 ) ) THEN 249 247 hx(:,l) = 0.5*(1. + cos(2*pi*(zrl(l)-zz0)/(zz2-zz1))) -
codes/icosagcm/trunk/src/etat0_dcmip2.f90
r344 r353 1 1 MODULE etat0_dcmip2_mod 2 3 2 ! test cases DCMIP 2012, category 2 : Orographic gravity waves 4 5 3 USE icosa 4 IMPLICIT NONE 6 5 PRIVATE 7 6 … … 33 32 SUBROUTINE compute_etat0(ngrid,lon,lat, phis, ps, Temp, ulon, ulat) 34 33 USE disvert_mod 35 IMPLICIT NONE34 USE omp_para 36 35 INTEGER, INTENT(IN) :: ngrid 37 36 REAL(rstd),INTENT(IN) :: lon(ngrid) … … 46 45 47 46 ! Hexagons : ps,phis,temp 48 DO l= 1,llm47 DO l=ll_begin,ll_end 49 48 ! The surface pressure is not set yet so we provide the hybrid coefficients 50 49 hyam = .5*(ap(l)+ap(l+1))/preff -
codes/icosagcm/trunk/src/etat0_dcmip3.f90
r345 r353 11 11 USE dcmip_initial_conditions_test_1_2_3 12 12 USE disvert_mod 13 USE omp_para 13 14 INTEGER, INTENT(IN) :: ngrid 14 15 REAL(rstd), INTENT(IN) :: lon(ngrid) … … 28 29 dummy,dummy,dummy,dummy,phis(ij),ps(ij),dummy,dummy) 29 30 END DO 30 DO l= 1,llm31 DO l=ll_begin,ll_end 31 32 DO ij=1,ngrid 32 33 pp = .5*(ap(l)+ap(l+1)) + .5*(bp(l)+bp(l+1))*ps(ij) ! full-layer pressure … … 34 35 ulon(ij,l),ulat(ij,l),dummy,Temp(ij,l),dummy,dummy,dummy,dummy) 35 36 END DO 36 END DO 37 q =0.37 END DO 38 q(:,:,:)=0. 38 39 END SUBROUTINE compute_etat0 39 40 -
codes/icosagcm/trunk/src/etat0_dcmip4.f90
r346 r353 39 39 USE icosa 40 40 USE disvert_mod 41 USE omp_para 41 42 INTEGER, INTENT(IN) :: ngrid 42 43 REAL(rstd),INTENT(IN) :: lon(ngrid) … … 66 67 ENDDO 67 68 68 DO l= 1,llm69 DO l=ll_begin,ll_end 69 70 etal = 0.5 *( ap(l)/preff+bp(l) + ap(l+1)/preff+bp(l+1) ) 70 71 etavl=(etal-eta0)*Pi/2 -
codes/icosagcm/trunk/src/etat0_dcmip5.f90
r340 r353 22 22 23 23 INTEGER, SAVE :: dcmip5_testcase 24 !$OMP THREADPRIVATE(dcmip5_testcase) 24 25 25 26 PUBLIC getin_etat0, compute_etat0 … … 41 42 SUBROUTINE compute_etat0(ngrid,lon,lat, phis, ps, Temp, ulon, ulat, q) 42 43 USE disvert_mod 44 USE omp_para 43 45 INTEGER, INTENT(IN) :: ngrid 44 46 REAL(rstd),INTENT(IN) :: lon(ngrid) … … 61 63 END DO 62 64 63 DO l= 1,llm65 DO l=ll_begin,ll_end 64 66 aa=.5*(ap(l)+ap(l+1)) 65 67 bb=.5*(bp(l)+bp(l+1))
Note: See TracChangeset
for help on using the changeset viewer.