Changeset 5087 for LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/scm.F90
- Timestamp:
- Jul 20, 2024, 12:00:23 PM (2 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/scm.F90
r5082 r5087 376 376 print*,'time case',year_ini_cas,mth_ini_cas,day_ini_cas 377 377 call ymds2ju & 378 &(year_ini_cas,mth_ini_cas,day_ini_cas,heure_ini_cas*3600 &379 &,day_ju_ini_cas)378 (year_ini_cas,mth_ini_cas,day_ini_cas,heure_ini_cas*3600 & 379 ,day_ju_ini_cas) 380 380 print*,'time case 2',day_ini_cas,day_ju_ini_cas 381 381 daytime = day + heure_ini_cas/24. ! 1st day and initial time of the simulation … … 384 384 call ju2ymds(daytime,year_print, month_print,day_print,sec_print) 385 385 print *,' Time of beginning : ', & 386 &year_print, month_print, day_print, sec_print386 year_print, month_print, day_print, sec_print 387 387 388 388 !--------------------------------------------------------------------- … … 615 615 616 616 print*,'nat_surf,pctsrf(1,is_oce),pctsrf(1,is_ter)',nat_surf & 617 &,pctsrf(1,is_oce),pctsrf(1,is_ter)617 ,pctsrf(1,is_oce),pctsrf(1,is_ter) 618 618 619 619 zmasq=pctsrf(1,is_ter)+pctsrf(1,is_lic) … … 746 746 ! fabrication de limit.nc 747 747 call writelim (1,phy_nat,phy_alb,phy_sst,phy_bil,phy_rug, & 748 &phy_ice,phy_fter,phy_foce,phy_flic,phy_fsic)748 phy_ice,phy_fter,phy_foce,phy_flic,phy_fsic) 749 749 750 750 … … 754 754 print*,'call to restart dyn 1d' 755 755 Call dyn1deta0("start1dyn.nc",plev,play,phi,phis,presnivs, & 756 &u,v,temp,q,omega2)756 u,v,temp,q,omega2) 757 757 758 758 print*,'fnday,annee_ref,day_ref,day_ini', & 759 &fnday,annee_ref,day_ref,day_ini759 fnday,annee_ref,day_ref,day_ini 760 760 !** call ymds2ju(annee_ref,mois,day_ini,heure,day) 761 761 day = day_ini … … 800 800 if (prt_level>=1) then 801 801 print*,'XXXXXXXXXXXXXXXXXXX ITAP,day,time=', & 802 &it,day,time,it_end,day_step802 it,day,time,it_end,day_step 803 803 print*,'PAS DE TEMPS ',timestep 804 804 endif … … 822 822 do l = 1, llm-1 823 823 phi(l+1)=phi(l)+RD*(temp(l)+temp(l+1))* & 824 &(play(l)-play(l+1))/(play(l)+play(l+1))824 (play(l)-play(l+1))/(play(l)+play(l+1)) 825 825 enddo 826 826 … … 861 861 print *,' avant physiq : -------- day time ',day,time 862 862 write(*,*) 'firstcall,lastcall,phis', & 863 &firstcall,lastcall,phis863 firstcall,lastcall,phis 864 864 end if 865 865 if (prt_level>=5) then 866 866 write(*,'(a10,2a4,4a13)') 'BEFOR1 IT=','it','l', & 867 &'presniv','plev','play','phi'867 'presniv','plev','play','phi' 868 868 write(*,'(a10,2i4,4f13.2)') ('BEFOR1 IT= ',it,l, & 869 &presnivs(l),plev(l),play(l),phi(l),l=1,llm)869 presnivs(l),plev(l),play(l),phi(l),l=1,llm) 870 870 write(*,'(a11,2a4,a11,6a8)') 'BEFOR2','it','l', & 871 &'presniv','u','v','temp','q1','q2','omega2'871 'presniv','u','v','temp','q1','q2','omega2' 872 872 write(*,'(a11,2i4,f11.2,5f8.2,e10.2)') ('BEFOR2 IT= ',it,l, & 873 &presnivs(l),u(l),v(l),temp(l),q(l,1),q(l,2),omega2(l),l=1,llm)873 presnivs(l),u(l),v(l),temp(l),q(l,1),q(l,2),omega2(l),l=1,llm) 874 874 endif 875 875 … … 889 889 if (prt_level>=5) then 890 890 write(*,'(a11,2a4,4a13)') 'AFTER1 IT=','it','l', & 891 &'presniv','plev','play','phi'891 'presniv','plev','play','phi' 892 892 write(*,'(a11,2i4,4f13.2)') ('AFTER1 it= ',it,l, & 893 &presnivs(l),plev(l),play(l),phi(l),l=1,llm)893 presnivs(l),plev(l),play(l),phi(l),l=1,llm) 894 894 write(*,'(a11,2a4,a11,6a8)') 'AFTER2','it','l', & 895 &'presniv','u','v','temp','q1','q2','omega2'895 'presniv','u','v','temp','q1','q2','omega2' 896 896 write(*,'(a11,2i4,f11.2,5f8.2,e10.2)') ('AFTER2 it= ',it,l, & 897 &presnivs(l),u(l),v(l),temp(l),q(l,1),q(l,2),omega2(l),l=1,llm)897 presnivs(l),u(l),v(l),temp(l),q(l,1),q(l,2),omega2(l),l=1,llm) 898 898 write(*,'(a11,2a4,a11,5a8)') 'AFTER3','it','l', & 899 & 'presniv','du_phys','dv_phys','dt_phys','dq1','dq2'899 'presniv','du_phys','dv_phys','dt_phys','dq1','dq2' 900 900 write(*,'(a11,2i4,f11.2,5f8.2)') ('AFTER3 it= ',it,l, & 901 &presnivs(l),86400*du_phys(l),86400*dv_phys(l), &902 &86400*dt_phys(l),86400*dq(l,1),dq(l,2),l=1,llm)901 presnivs(l),86400*du_phys(l),86400*dv_phys(l), & 902 86400*dt_phys(l),86400*dq(l,1),dq(l,2),l=1,llm) 903 903 write(*,*) 'dpsrf',dpsrf 904 904 endif … … 924 924 925 925 d_u_age(1:mxcalc)= -2.*sfdt/timestep* & 926 &(sfdt*(u(1:mxcalc)-ug(1:mxcalc)) - &927 &cfdt*(v(1:mxcalc)-vg(1:mxcalc)) )926 (sfdt*(u(1:mxcalc)-ug(1:mxcalc)) - & 927 cfdt*(v(1:mxcalc)-vg(1:mxcalc)) ) 928 928 !! : fcoriolis*(v(1:mxcalc)-vg(1:mxcalc)) 929 929 ! 930 930 d_v_age(1:mxcalc)= -2.*sfdt/timestep* & 931 &(cfdt*(u(1:mxcalc)-ug(1:mxcalc)) + &932 &sfdt*(v(1:mxcalc)-vg(1:mxcalc)) )931 (cfdt*(u(1:mxcalc)-ug(1:mxcalc)) + & 932 sfdt*(v(1:mxcalc)-vg(1:mxcalc)) ) 933 933 !! : -fcoriolis*(u(1:mxcalc)-ug(1:mxcalc)) 934 934 ENDIF … … 953 953 954 954 IF ( play(l) < p_nudging_u .AND. nint(nudging_u) /= 0 ) & 955 &d_u_nudge(l)=(u_nudg_mod_cas(l)-u(l))/nudging_u955 d_u_nudge(l)=(u_nudg_mod_cas(l)-u(l))/nudging_u 956 956 957 957 ENDIF … … 966 966 967 967 IF ( play(l) < p_nudging_v .AND. nint(nudging_v) /= 0 ) & 968 &d_v_nudge(l)=(v_nudg_mod_cas(l)-v(l))/nudging_v968 d_v_nudge(l)=(v_nudg_mod_cas(l)-v(l))/nudging_v 969 969 970 970 ENDIF … … 979 979 980 980 IF ( play(l) < p_nudging_t .AND. nint(nudging_t) /= 0 ) & 981 &d_t_nudge(l)=(temp_nudg_mod_cas(l)-temp(l))/nudging_t981 d_t_nudge(l)=(temp_nudg_mod_cas(l)-temp(l))/nudging_t 982 982 983 983 ENDIF … … 991 991 992 992 IF ( play(l) < p_nudging_qv .AND. nint(nudging_qv) /= 0 ) & 993 &d_q_nudge(l,1)=(qv_nudg_mod_cas(l)-q(l,1))/nudging_qv993 d_q_nudge(l,1)=(qv_nudg_mod_cas(l)-q(l,1))/nudging_qv 994 994 995 995 ENDIF … … 1021 1021 1022 1022 u(1:mxcalc)=u(1:mxcalc) + timestep*( & 1023 &du_phys(1:mxcalc) &1024 &+d_u_age(1:mxcalc)+d_u_adv(1:mxcalc) &1025 & +d_u_nudge(1:mxcalc) )1023 du_phys(1:mxcalc) & 1024 +d_u_age(1:mxcalc)+d_u_adv(1:mxcalc) & 1025 +d_u_nudge(1:mxcalc) ) 1026 1026 v(1:mxcalc)=v(1:mxcalc) + timestep*( & 1027 &dv_phys(1:mxcalc) &1028 &+d_v_age(1:mxcalc)+d_v_adv(1:mxcalc) &1029 &+d_v_nudge(1:mxcalc) )1027 dv_phys(1:mxcalc) & 1028 +d_v_age(1:mxcalc)+d_v_adv(1:mxcalc) & 1029 +d_v_nudge(1:mxcalc) ) 1030 1030 q(1:mxcalc,:)=q(1:mxcalc,:)+timestep*( & 1031 &dq(1:mxcalc,:) &1032 &+d_q_adv(1:mxcalc,:) &1033 &+d_q_nudge(1:mxcalc,:) )1031 dq(1:mxcalc,:) & 1032 +d_q_adv(1:mxcalc,:) & 1033 +d_q_nudge(1:mxcalc,:) ) 1034 1034 1035 1035 if (prt_level>=3) then 1036 1036 print *, & 1037 &'physiq-> temp(1),dt_phys(1),d_t_adv(1),dt_cooling(1) ', &1038 &temp(1),dt_phys(1),d_t_adv(1),dt_cooling(1)1037 'physiq-> temp(1),dt_phys(1),d_t_adv(1),dt_cooling(1) ', & 1038 temp(1),dt_phys(1),d_t_adv(1),dt_cooling(1) 1039 1039 print* ,'dv_phys=',dv_phys 1040 1040 print* ,'d_v_age=',d_v_age … … 1046 1046 1047 1047 temp(1:mxcalc)=temp(1:mxcalc)+timestep*( & 1048 &dt_phys(1:mxcalc) &1049 &+d_t_adv(1:mxcalc) &1050 &+d_t_nudge(1:mxcalc) &1051 &+dt_cooling(1:mxcalc)) ! Taux de chauffage ou refroid.1048 dt_phys(1:mxcalc) & 1049 +d_t_adv(1:mxcalc) & 1050 +d_t_nudge(1:mxcalc) & 1051 +dt_cooling(1:mxcalc)) ! Taux de chauffage ou refroid. 1052 1052 1053 1053 … … 1064 1064 IF (nudge_tsoil .AND. .NOT. lastcall) THEN 1065 1065 ftsoil(1,isoil_nudge,:) = ftsoil(1,isoil_nudge,:) & 1066 &-timestep/tau_soil_nudge*(ftsoil(1,isoil_nudge,:)-Tsoil_nudge)1066 -timestep/tau_soil_nudge*(ftsoil(1,isoil_nudge,:)-Tsoil_nudge) 1067 1067 ENDIF 1068 1068 … … 1110 1110 ! --------------------------------------------------------------------------- 1111 1111 call dyn1dredem("restart1dyn.nc", & 1112 &plev,play,phi,phis,presnivs, &1113 &u,v,temp,q,omega2)1112 plev,play,phi,phis,presnivs, & 1113 u,v,temp,q,omega2) 1114 1114 1115 1115 CALL abort_gcm ('lmdz1d ','The End ',0)
Note: See TracChangeset
for help on using the changeset viewer.