Changeset 1154 for LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
- Timestamp:
- May 4, 2009, 5:24:19 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
r1150 r1154 28 28 USE fonte_neige_mod, ONLY : fonte_neige_get_vars 29 29 USE phys_output_mod 30 use open_climoz_m, only: open_climoz ! ozone climatology 31 use regr_pr, only: regr_pr_av 32 use netcdf95, only: nf95_close 33 use mod_phys_lmdz_mpi_data, only: is_mpi_root 30 34 31 35 IMPLICIT none … … 710 714 SAVE lmt_pas ! frequence de mise a jour 711 715 c$OMP THREADPRIVATE(lmt_pas) 716 real zmasse(klon, llm) 717 C (column-density of mass of air in a cell, in kg m-2) 718 real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 712 719 713 720 cIM sorties … … 1093 1100 LOGICAL,SAVE :: first=.true. 1094 1101 c$OMP THREADPRIVATE(first) 1102 1103 logical, save:: read_climoz ! read ozone climatology 1104 integer, save:: ncid_climoz ! NetCDF file containing ozone climatology 1105 1106 real, pointer, save:: press_climoz(:) 1107 ! edges of pressure intervals for ozone climatology, in Pa, in strictly 1108 ! ascending order 1109 1095 1110 #include "YOMCST.h" 1096 1111 #include "YOETHF.h" … … 1139 1154 1140 1155 torsfc=0. 1156 forall (k=1: llm) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg 1141 1157 1142 1158 if (first) then … … 1234 1250 . iflag_thermals_ed,iflag_thermals_optflux, 1235 1251 cnv flags pour la convection et les poches froides 1236 . iflag_coupl,iflag_clos,iflag_wake )1252 . iflag_coupl,iflag_clos,iflag_wake, read_climoz) 1237 1253 1238 1254 print*,'iflag_coupl,iflag_clos,iflag_wake', … … 1555 1571 call iniradia(klon,klev,paprs(1,1:klev+1)) 1556 1572 1573 C$omp single 1574 if (read_climoz) then 1575 call open_climoz(ncid_climoz, press_climoz) 1576 END IF 1577 C$omp end single 1557 1578 ENDIF 1558 1579 ! … … 1723 1744 c 1724 1745 IF (MOD(itap-1,lmt_pas) .EQ. 0) THEN 1725 if(prt_level.ge.1) WRITE(lunout,*)' PHYS cond julien ',julien 1726 CALL ozonecm( FLOAT(julien), rlat, paprs, wo) 1746 C Once per day, update ozone: 1747 if (read_climoz) then 1748 C Ozone climatology from a NetCDF file 1749 call regr_pr_av(ncid_climoz, "tro3", julien, press_climoz, 1750 $ paprs, wo) 1751 ! Convert from mole fraction of ozone to column density of ozone in a 1752 ! cell, in kDU: 1753 wo = wo * 48. / 29. * zmasse / dobson_u / 1e3 1754 C (By regridding ozone values for LMDZ only once per day, we 1755 C have already neglected the variation of pressure in one 1756 C day. So do not recompute "wo" at each time step even if 1757 C "zmasse" changes a little.) 1758 else 1759 CALL ozonecm(real(julien), rlat, paprs, wo) 1760 end if 1727 1761 ENDIF 1728 1762 c … … 3496 3530 ! write(97) u_seri,v_seri,t_seri,q_seri 3497 3531 ! close(97) 3532 C$OMP single 3533 if (read_climoz) then 3534 if (is_mpi_root) then 3535 call nf95_close(ncid_climoz) 3536 end if 3537 deallocate(press_climoz) ! pointer 3538 end if 3539 C$OMP end single nowait 3498 3540 ENDIF 3499 3541
Note: See TracChangeset
for help on using the changeset viewer.