Changeset 1215 for LMDZ4/branches/LMDZ4-dev/libf/phylmd/ozonecm_m.F90
- Timestamp:
- Jul 23, 2009, 5:52:59 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/ozonecm_m.F90
r1188 r1215 6 6 contains 7 7 8 SUBROUTINE ozonecm(rjour,rlat,paprs,o3)8 function ozonecm(rjour,rlat,paprs) 9 9 10 10 ! The ozone climatology is based on an analytic formula which fits the … … 22 22 23 23 USE dimphy, only: klon, klev 24 use assert_m, only: assert 24 25 25 26 REAL, INTENT (IN) :: rjour 26 REAL, INTENT (IN) :: rlat(klon), paprs(klon,klev+1) 27 REAL o3(klon,klev) 28 ! "o3(j, k)" is the column-density of ozone in cell "(j, k)", that is 27 REAL, INTENT (IN) :: rlat(:) ! (klon) 28 REAL, INTENT (IN) :: paprs(:, :) ! (klon,klev+1) 29 30 REAL ozonecm(klon,klev) 31 ! "ozonecm(j, k)" is the column-density of ozone in cell "(j, k)", that is 29 32 ! between interface "k" and interface "k + 1", in kDU. 30 33 … … 47 50 !---------------------------------------------------------- 48 51 52 call assert((/size(rlat), size(paprs, 1)/) == klon, "ozonecm klon") 53 call assert(size(paprs, 2) == klev + 1, "ozonecm klev") 54 49 55 pi = 4. * atan(1.) 50 56 DO k = 1, klev 51 57 DO i = 1, klon 52 58 zslat = sin(pi / 180. * rlat(i)) 53 zsint = sin(2 .*pi*(rjour+15.)/an)54 zcost = cos(2 .*pi*(rjour+15.)/an)59 zsint = sin(2 * pi * (rjour + 15.) / an) 60 zcost = cos(2 * pi * (rjour + 15.) / an) 55 61 z = 0.0531 + zsint * (-0.001595+0.009443*zslat) & 56 62 + zcost * (-0.001344-0.00346*zslat) & … … 79 85 80 86 field(:,klev+1) = 0. 81 forall (k = 1: klev) o 3(:,k) = field(:,k) - field(:,k+1)87 forall (k = 1: klev) ozonecm(:,k) = field(:,k) - field(:,k+1) 82 88 83 END SUBROUTINEozonecm89 END function ozonecm 84 90 85 91 end module ozonecm_m
Note: See TracChangeset
for help on using the changeset viewer.