Changeset 2344 for LMDZ5/trunk/libf/phylmd/physiq.F90
- Timestamp:
- Aug 21, 2015, 9:23:13 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/physiq.F90
r2343 r2344 3 3 4 4 SUBROUTINE physiq (nlon,nlev, & 5 debut,lafin,jD_cur , jH_cur,pdtphys, &5 debut,lafin,jD_cur_,jH_cur_,pdtphys_, & 6 6 paprs,pplay,pphi,pphis,presnivs, & 7 7 u,v,rot,t,qx, & … … 14 14 USE comgeomphy 15 15 USE phys_cal_mod, only: year_len, mth_len, days_elapsed, jh_1jan, year_cur, & 16 mth_cur, phys_cal_update16 mth_cur,jD_cur, jH_cur, jD_ref, phys_cal_update 17 17 USE write_field_phy 18 18 USE dimphy 19 19 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, type_trac 20 USE mod_grid_phy_lmdz 20 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, nbp_lev, klon_glo 21 21 USE mod_phys_lmdz_para 22 22 USE iophy … … 48 48 use radlwsw_m, only: radlwsw 49 49 use phyaqua_mod, only: zenang_an 50 USE time_phylmdz_mod, only: day_step_phy, annee_ref, day_ref, itau_phy, & 51 start_time, pdtphys 50 52 USE control_mod, ONLY: config_inca 51 53 #ifdef CPP_XIOS … … 114 116 !! d_ps----output-R-tendance physique de la pression au sol 115 117 !!====================================================================== 116 include "dimensions.h"117 118 integer jjmp1 118 parameter (jjmp1=jjm+1-1/jjm)119 integer iip1120 parameter (iip1=iim+1)119 ! parameter (jjmp1=jjm+1-1/jjm) ! => (jjmp1=nbp_lat-1/(nbp_lat-1)) 120 ! integer iip1 121 ! parameter (iip1=iim+1) 121 122 122 123 include "regdim.h" 123 124 include "dimsoil.h" 124 125 include "clesphys.h" 125 include "temps.h"126 126 include "thermcell.h" 127 127 !====================================================================== … … 219 219 INTEGER nlon 220 220 INTEGER nlev 221 REAL, intent(in):: jD_cur, jH_cur 222 223 REAL pdtphys 221 REAL, intent(in):: jD_cur_, jH_cur_ 222 ! JD_cur and JH_cur to be used in physics are in phys_cal_mod 223 REAL,INTENT(IN) :: pdtphys_ 224 ! NB: pdtphys to be used in physics is in time_phylmdz_mod 224 225 LOGICAL debut, lafin 225 226 REAL paprs(klon,klev+1) … … 509 510 SAVE lmt_pas ! frequence de mise a jour 510 511 !$OMP THREADPRIVATE(lmt_pas) 511 real zmasse(klon, llm),exner(klon, llm)512 real zmasse(klon, nbp_lev),exner(klon, nbp_lev) 512 513 ! (column-density of mass of air in a cell, in kg m-2) 513 514 real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 … … 694 695 REAL tabcntr0( length ) 695 696 ! 696 INTEGER ndex2d( iim*jjmp1)697 INTEGER ndex2d(nbp_lon*nbp_lat) 697 698 !IM 698 699 ! … … 706 707 !IM 141004 END 707 708 !IM 190504 BEG 708 INTEGER ij, imp1jmp1 709 PARAMETER(imp1jmp1=(iim+1)*jjmp1) 709 INTEGER ij 710 ! INTEGER imp1jmp1 711 ! PARAMETER(imp1jmp1=(iim+1)*jjmp1) 710 712 !ym A voir plus tard 711 REAL zx_tmp(imp1jmp1), airedyn(iim+1,jjmp1) 712 REAL padyn(iim+1,jjmp1,klev+1) 713 REAL dudyn(iim+1,jjmp1,klev) 714 REAL rlatdyn(iim+1,jjmp1) 713 REAL zx_tmp((nbp_lon+1)*nbp_lat) 714 REAL airedyn(nbp_lon+1,nbp_lat) 715 REAL padyn(nbp_lon+1,nbp_lat,klev+1) 716 REAL dudyn(nbp_lon+1,nbp_lat,klev) 717 REAL rlatdyn(nbp_lon+1,nbp_lat) 715 718 !IM 190504 END 716 719 LOGICAL ok_msk … … 724 727 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 725 728 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 726 REAL zx_tmp_2d(iim,jjmp1) 727 REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1) 729 REAL zx_tmp_2d(nbp_lon,nbp_lat) 730 REAL zx_lon(nbp_lon,nbp_lat) 731 REAL zx_lat(nbp_lon,nbp_lat) 728 732 ! 729 733 INTEGER nid_day_seri, nid_ctesGCM … … 900 904 !albedo SB <<< 901 905 906 ! Ehouarn: set value of jjmp1 since it is no longer a "fixed parameter" 907 jjmp1=nbp_lat 908 902 909 !====================================================================== 903 910 ! Gestion calendrier : mise a jour du module phys_cal_mod 904 911 ! 912 JD_cur=JD_cur_ 913 JH_cur=JH_cur_ 914 pdtphys=pdtphys_ 905 915 CALL phys_cal_update(jD_cur,jH_cur) 906 916 … … 992 1002 993 1003 torsfc=0. 994 forall (k=1: llm) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg1004 forall (k=1: nbp_lev) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg 995 1005 996 1006 … … 1832 1842 1833 1843 if (mydebug) then 1834 call writefield_phy('u_seri',u_seri, llm)1835 call writefield_phy('v_seri',v_seri, llm)1836 call writefield_phy('t_seri',t_seri, llm)1837 call writefield_phy('q_seri',q_seri, llm)1844 call writefield_phy('u_seri',u_seri,nbp_lev) 1845 call writefield_phy('v_seri',v_seri,nbp_lev) 1846 call writefield_phy('t_seri',t_seri,nbp_lev) 1847 call writefield_phy('q_seri',q_seri,nbp_lev) 1838 1848 endif 1839 1849 … … 1978 1988 1979 1989 if (mydebug) then 1980 call writefield_phy('u_seri',u_seri, llm)1981 call writefield_phy('v_seri',v_seri, llm)1982 call writefield_phy('t_seri',t_seri, llm)1983 call writefield_phy('q_seri',q_seri, llm)1990 call writefield_phy('u_seri',u_seri,nbp_lev) 1991 call writefield_phy('v_seri',v_seri,nbp_lev) 1992 call writefield_phy('t_seri',t_seri,nbp_lev) 1993 call writefield_phy('q_seri',q_seri,nbp_lev) 1984 1994 endif 1985 1995 … … 2469 2479 2470 2480 if (mydebug) then 2471 call writefield_phy('u_seri',u_seri, llm)2472 call writefield_phy('v_seri',v_seri, llm)2473 call writefield_phy('t_seri',t_seri, llm)2474 call writefield_phy('q_seri',q_seri, llm)2481 call writefield_phy('u_seri',u_seri,nbp_lev) 2482 call writefield_phy('v_seri',v_seri,nbp_lev) 2483 call writefield_phy('t_seri',t_seri,nbp_lev) 2484 call writefield_phy('q_seri',q_seri,nbp_lev) 2475 2485 endif 2476 2486 … … 3039 3049 3040 3050 if (mydebug) then 3041 call writefield_phy('u_seri',u_seri, llm)3042 call writefield_phy('v_seri',v_seri, llm)3043 call writefield_phy('t_seri',t_seri, llm)3044 call writefield_phy('q_seri',q_seri, llm)3051 call writefield_phy('u_seri',u_seri,nbp_lev) 3052 call writefield_phy('v_seri',v_seri,nbp_lev) 3053 call writefield_phy('t_seri',t_seri,nbp_lev) 3054 call writefield_phy('q_seri',q_seri,nbp_lev) 3045 3055 endif 3046 3056 … … 3397 3407 ibas_con, & 3398 3408 cldfra, & 3399 iim, &3400 jjm, &3409 nbp_lon, & 3410 nbp_lat-1, & 3401 3411 tr_seri, & 3402 3412 ftsol, & … … 3525 3535 3526 3536 if (mydebug) then 3527 call writefield_phy('u_seri',u_seri, llm)3528 call writefield_phy('v_seri',v_seri, llm)3529 call writefield_phy('t_seri',t_seri, llm)3530 call writefield_phy('q_seri',q_seri, llm)3537 call writefield_phy('u_seri',u_seri,nbp_lev) 3538 call writefield_phy('v_seri',v_seri,nbp_lev) 3539 call writefield_phy('t_seri',t_seri,nbp_lev) 3540 call writefield_phy('q_seri',q_seri,nbp_lev) 3531 3541 endif 3532 3542 … … 3716 3726 ! 3717 3727 if (mydebug) then 3718 call writefield_phy('u_seri',u_seri, llm)3719 call writefield_phy('v_seri',v_seri, llm)3720 call writefield_phy('t_seri',t_seri, llm)3721 call writefield_phy('q_seri',q_seri, llm)3728 call writefield_phy('u_seri',u_seri,nbp_lev) 3729 call writefield_phy('v_seri',v_seri,nbp_lev) 3730 call writefield_phy('t_seri',t_seri,nbp_lev) 3731 call writefield_phy('q_seri',q_seri,nbp_lev) 3722 3732 endif 3723 3733 … … 3801 3811 ! 3802 3812 if (mydebug) then 3803 call writefield_phy('u_seri',u_seri, llm)3804 call writefield_phy('v_seri',v_seri, llm)3805 call writefield_phy('t_seri',t_seri, llm)3806 call writefield_phy('q_seri',q_seri, llm)3813 call writefield_phy('u_seri',u_seri,nbp_lev) 3814 call writefield_phy('v_seri',v_seri,nbp_lev) 3815 call writefield_phy('t_seri',t_seri,nbp_lev) 3816 call writefield_phy('q_seri',q_seri,nbp_lev) 3807 3817 endif 3808 3818 … … 3909 3919 3910 3920 if (mydebug) then 3911 call writefield_phy('u_seri',u_seri, llm)3912 call writefield_phy('v_seri',v_seri, llm)3913 call writefield_phy('t_seri',t_seri, llm)3914 call writefield_phy('q_seri',q_seri, llm)3921 call writefield_phy('u_seri',u_seri,nbp_lev) 3922 call writefield_phy('v_seri',v_seri,nbp_lev) 3923 call writefield_phy('t_seri',t_seri,nbp_lev) 3924 call writefield_phy('q_seri',q_seri,nbp_lev) 3915 3925 endif 3916 3926 … … 4082 4092 4083 4093 d_t_ec(:,:)=0. 4084 forall (k=1: llm) exner(:, k) = (pplay(:, k)/paprs(:,1))**RKAPPA4094 forall (k=1: nbp_lev) exner(:, k) = (pplay(:, k)/paprs(:,1))**RKAPPA 4085 4095 CALL ener_conserv(klon,klev,pdtphys,u,v,t,qx(:,:,ivap), & 4086 4096 u_seri,v_seri,t_seri,q_seri,pbl_tke(:,:,is_ave)-tke0(:,:), & … … 4178 4188 ! 4179 4189 if (mydebug) then 4180 call writefield_phy('u_seri',u_seri, llm)4181 call writefield_phy('v_seri',v_seri, llm)4182 call writefield_phy('t_seri',t_seri, llm)4183 call writefield_phy('q_seri',q_seri, llm)4190 call writefield_phy('u_seri',u_seri,nbp_lev) 4191 call writefield_phy('v_seri',v_seri,nbp_lev) 4192 call writefield_phy('t_seri',t_seri,nbp_lev) 4193 call writefield_phy('q_seri',q_seri,nbp_lev) 4184 4194 endif 4185 4195
Note: See TracChangeset
for help on using the changeset viewer.