Changeset 1154 for LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Timestamp:
- May 4, 2009, 5:24:19 PM (16 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Files:
-
- 3 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/clesphys.h
r1150 r1154 13 13 INTEGER nbapp_rad, iflag_con 14 14 REAL co2_ppm, solaire 15 REAL *8RCO2, RCH4, RN2O, RCFC11, RCFC1216 REAL *8CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt15 REAL(kind=8) RCO2, RCH4, RN2O, RCFC11, RCFC12 16 REAL(kind=8) CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 17 17 18 18 !OM ---> correction du bilan d'eau global … … 39 39 !IM lev_histmth : niveau sorties mensuelles 40 40 INTEGER lev_histhf, lev_histday, lev_histmth 41 CHARACTER *4type_run41 CHARACTER(len=4) type_run 42 42 ! aer_type: pour utiliser un fichier constant dans readaerosol 43 43 CHARACTER*8 :: aer_type -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90
r1150 r1154 7 7 8 8 subroutine conf_phys(ok_journe, ok_mensuel, ok_instan, ok_hf, & 9 &ok_LES,&10 &solarlong0,seuil_inversion, &11 &fact_cldcon, facttemps,ok_newmicro,iflag_radia,&12 &iflag_cldcon, &13 &iflag_ratqs,ratqsbas,ratqshaut, &14 &ok_ade, ok_aie, aerosol_couple, &15 &flag_aerosol, new_aod, &16 &bl95_b0, bl95_b1,&17 &iflag_thermals,nsplit_thermals,tau_thermals, &18 &iflag_thermals_ed,iflag_thermals_optflux, &19 & iflag_coupl,iflag_clos,iflag_wake)9 ok_LES,& 10 solarlong0,seuil_inversion, & 11 fact_cldcon, facttemps,ok_newmicro,iflag_radia,& 12 iflag_cldcon, & 13 iflag_ratqs,ratqsbas,ratqshaut, & 14 ok_ade, ok_aie, aerosol_couple, & 15 flag_aerosol, new_aod, & 16 bl95_b0, bl95_b1,& 17 iflag_thermals,nsplit_thermals,tau_thermals, & 18 iflag_thermals_ed,iflag_thermals_optflux, & 19 iflag_coupl,iflag_clos,iflag_wake, read_climoz) 20 20 21 21 use IOIPSL … … 140 140 LOGICAL,SAVE :: ok_strato_omp 141 141 LOGICAL,SAVE :: ok_hines_omp 142 143 logical, intent(out):: read_climoz ! read ozone climatology 142 144 ! 143 145 … … 1221 1223 call getin('ecrit_LES', ecrit_LES_omp) 1222 1224 ! 1225 read_climoz = .false. ! default value 1226 call getin('read_climoz', read_climoz) 1223 1227 1224 1228 !$OMP END MASTER … … 1467 1471 1468 1472 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 1469 &lonmin_ins, lonmax_ins, latmin_ins, latmax_ins1473 lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 1470 1474 write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP, LES',& 1471 &ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES1475 ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES 1472 1476 1473 1477 write(numout,*) 'ok_strato = ', ok_strato 1474 1478 write(numout,*) 'ok_hines = ', ok_hines 1479 write(numout,*) 'read_climoz = ', read_climoz 1475 1480 1476 1481 !$OMP END MASTER -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/indicesol.h
r793 r1154 24 24 PARAMETER (epsfra=1.0E-05) 25 25 ! 26 CHARACTER *3clnsurf(nbsrf)26 CHARACTER(len=3) clnsurf(nbsrf) 27 27 DATA clnsurf/'ter', 'lic', 'oce', 'sic'/ 28 28 SAVE clnsurf -
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.