Changeset 5128 for LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d
- Timestamp:
- Jul 25, 2024, 5:47:25 PM (11 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/1D_decl_cases.h
r5117 r5128 190 190 191 191 common /turb_forcing/ & 192 &dtime_frcg,hthturb_gcssold, hqturb_gcssold,Turb_fcg_gcssold192 dtime_frcg,hthturb_gcssold, hqturb_gcssold,Turb_fcg_gcssold 193 193 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 194 194 ! Declarations specifiques au cas Arm_cu -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/1D_interp_cases.h
r5117 r5128 9 9 CALL interp_case_time_std(daytime,day1,annee_ref & 10 10 ! & ,year_ini_cas,day_ju_ini_cas,nt_cas,pdt_cas,nlev_cas & 11 &,nt_cas,nlev_cas &12 &,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas &13 &,u_cas,v_cas,ug_cas,vg_cas &14 &,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas &15 &,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas &16 &,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas &17 &,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas &18 &,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas &19 &,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas &11 ,nt_cas,nlev_cas & 12 ,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas & 13 ,u_cas,v_cas,ug_cas,vg_cas & 14 ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 15 ,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas & 16 ,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas & 17 ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 18 ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & 19 ,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas & 20 20 21 &,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas &22 &,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas &23 &,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas &24 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &25 & ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &26 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &27 &,du_prof_cas,hu_prof_cas,vu_prof_cas &28 &,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas &29 &,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &30 &,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas &31 &,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas)21 ,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 22 ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 23 ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 24 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 25 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 26 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 27 ,du_prof_cas,hu_prof_cas,vu_prof_cas & 28 ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & 29 ,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 30 ,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas & 31 ,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas) 32 32 ! EV tg instead of ts_cur 33 33 tg = ts_prof_cas … … 41 41 ! vertical interpolation: 42 42 CALL interp2_case_vertical_std(play,plev,nlev_cas,plev_prof_cas & 43 &,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas &44 &,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas &45 &,ug_prof_cas,vg_prof_cas &46 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &47 &,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &43 ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 44 ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 45 ,ug_prof_cas,vg_prof_cas & 46 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 47 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 48 48 49 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &50 &,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas &51 &,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &52 &,dth_prof_cas,hth_prof_cas,vth_prof_cas &49 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 50 ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 51 ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 52 ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 53 53 54 &,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas &55 &,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas &56 &,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas &57 & ,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas &58 &,w_mod_cas,omega_mod_cas,tke_mod_cas &59 &,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas &60 &,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas &61 &,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc)54 ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 55 ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 56 ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 57 ,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas & 58 ,w_mod_cas,omega_mod_cas,tke_mod_cas & 59 ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 60 ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 61 ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 62 62 63 63 -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/1D_read_forc_cases.h
r5117 r5128 22 22 CALL interp_case_time_std(daytime,day1,annee_ref & 23 23 ! & ,year_ini_cas,day_ju_ini_cas,nt_cas,pdt_cas,nlev_cas & 24 &,nt_cas,nlev_cas &25 &,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas &26 &,u_cas,v_cas,ug_cas,vg_cas &27 &,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas &28 &,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas &29 &,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas &30 &,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas &31 &,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas &32 &,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas &24 ,nt_cas,nlev_cas & 25 ,ts_cas,tskin_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas & 26 ,u_cas,v_cas,ug_cas,vg_cas & 27 ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 28 ,invtau_temp_nudg_cas,invtau_qv_nudg_cas,invtau_u_nudg_cas,invtau_v_nudg_cas & 29 ,vitw_cas,omega_cas,tke_cas,du_cas,hu_cas,vu_cas & 30 ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 31 ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & 32 ,uw_cas,vw_cas,q1_cas,q2_cas,tkes_cas & 33 33 34 &,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas &35 &,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas &36 &,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas &37 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &38 &,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &39 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &40 &,du_prof_cas,hu_prof_cas,vu_prof_cas &41 &,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas &42 &,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &43 &,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas &44 &,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas)34 ,ts_prof_cas,tskin_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 35 ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 36 ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 37 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 38 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 39 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 40 ,du_prof_cas,hu_prof_cas,vu_prof_cas & 41 ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & 42 ,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 43 ,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas & 44 ,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tkes_prof_cas) 45 45 46 46 do l = 1, nlev_cas … … 51 51 ! WRITE(*,*)'avant interp vert', t_prof 52 52 CALL interp2_case_vertical_std(play,plev,nlev_cas,plev_prof_cas & 53 &,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas &54 &,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas &55 &,ug_prof_cas,vg_prof_cas &56 &,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas &57 &,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas &58 &,vitw_prof_cas,omega_prof_cas,tke_prof_cas &59 &,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas &60 &,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas &61 &,dth_prof_cas,hth_prof_cas,vth_prof_cas &53 ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 54 ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 55 ,ug_prof_cas,vg_prof_cas & 56 ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 57 ,invtau_temp_nudg_prof_cas,invtau_qv_nudg_prof_cas,invtau_u_nudg_prof_cas,invtau_v_nudg_prof_cas & 58 ,vitw_prof_cas,omega_prof_cas,tke_prof_cas & 59 ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 60 ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 61 ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 62 62 63 &,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas &64 &,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas &65 &,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas &66 &,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas &67 &,w_mod_cas,omega_mod_cas,tke_mod_cas &68 &,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas &69 &,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas &70 &,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc)63 ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 64 ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 65 ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 66 ,invtau_temp_nudg_mod_cas,invtau_qv_nudg_mod_cas,invtau_u_nudg_mod_cas,invtau_v_nudg_mod_cas & 67 ,w_mod_cas,omega_mod_cas,tke_mod_cas & 68 ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 69 ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 70 ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 71 71 72 72 -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/compar1d.h
r5117 r5128 46 46 real :: p_nudging_u, p_nudging_v, p_nudging_w, p_nudging_t, p_nudging_qv 47 47 common/com_par1d/ & 48 &nat_surf,tsurf,beta_surf,rugos,rugosh, &49 &xqsol,qsurf,psurf,zsurf,albedo,time,time_ini,xlat,xlon,airefi, &50 &wtsurf,wqsurf,restart_runoff,xagesno,qsolinp,zpicinp, &51 &forcing_type,tend_u,tend_v,tend_w,tend_t,tend_q,tend_rayo, &52 &nudge_u,nudge_v,nudge_w,nudge_t,nudge_q, &53 &iflag_nudge,snowmass, &54 &restart,ok_old_disvert, &55 &tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, &56 &trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, &57 &nudging_u, nudging_v, nudging_t, nudging_qv, nudging_w, &58 &p_nudging_u, p_nudging_v, p_nudging_t, p_nudging_qv, p_nudging_w48 nat_surf,tsurf,beta_surf,rugos,rugosh, & 49 xqsol,qsurf,psurf,zsurf,albedo,time,time_ini,xlat,xlon,airefi, & 50 wtsurf,wqsurf,restart_runoff,xagesno,qsolinp,zpicinp, & 51 forcing_type,tend_u,tend_v,tend_w,tend_t,tend_q,tend_rayo, & 52 nudge_u,nudge_v,nudge_w,nudge_t,nudge_q, & 53 iflag_nudge,snowmass, & 54 restart,ok_old_disvert, & 55 tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, & 56 trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, & 57 nudging_u, nudging_v, nudging_t, nudging_qv, nudging_w, & 58 p_nudging_u, p_nudging_v, p_nudging_t, p_nudging_qv, p_nudging_w 59 59 60 60 !$OMP THREADPRIVATE(/com_par1d/) -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_1dutils.f90
r5119 r5128 1 1 MODULE lmdz_1dutils 2 2 IMPLICIT NONE; PRIVATE 3 PUBLIC fq_sat, conf_unicol, dyn1deta0, dyn1dredem, gr_fi_dyn, abort_gcm, gr_dyn_fi,&3 PUBLIC fq_sat, conf_unicol, dyn1deta0, dyn1dredem, & 4 4 disvert0, advect_vert, advect_va, lstendh, nudge_rht_init, nudge_uv_init, & 5 5 nudge_rht, nudge_uv, interp2_case_vertical … … 981 981 982 982 983 SUBROUTINE gr_fi_dyn(nfield, ngrid, im, jm, pfi, pdyn)984 USE lmdz_ssum_scopy, ONLY: scopy985 986 IMPLICIT NONE987 !=======================================================================988 ! passage d'un champ de la grille scalaire a la grille physique989 !=======================================================================990 991 !-----------------------------------------------------------------------992 ! declarations:993 ! -------------994 995 INTEGER im, jm, ngrid, nfield996 REAL pdyn(im, jm, nfield)997 REAL pfi(ngrid, nfield)998 999 INTEGER i, j, ifield, ig1000 1001 !-----------------------------------------------------------------------1002 ! calcul:1003 ! -------1004 1005 DO ifield = 1, nfield1006 ! traitement des poles1007 DO i = 1, im1008 pdyn(i, 1, ifield) = pfi(1, ifield)1009 pdyn(i, jm, ifield) = pfi(ngrid, ifield)1010 ENDDO1011 1012 ! traitement des point normaux1013 DO j = 2, jm - 11014 ig = 2 + (j - 2) * (im - 1)1015 CALL SCOPY(im - 1, pfi(ig, ifield), 1, pdyn(1, j, ifield), 1)1016 pdyn(im, j, ifield) = pdyn(1, j, ifield)1017 ENDDO1018 ENDDO1019 1020 END SUBROUTINE gr_fi_dyn1021 1022 1023 SUBROUTINE abort_gcm(modname, message, ierr)1024 USE IOIPSL1025 1026 ! Stops the simulation cleanly, closing files and printing various1027 ! comments1028 1029 ! Input: modname = name of calling program1030 ! message = stuff to print1031 ! ierr = severity of situation ( = 0 normal )1032 1033 CHARACTER(LEN = *) modname1034 INTEGER ierr1035 CHARACTER(LEN = *) message1036 1037 WRITE(*, *) 'in abort_gcm'1038 CALL histclo1039 ! CALL histclo(2)1040 ! CALL histclo(3)1041 ! CALL histclo(4)1042 ! CALL histclo(5)1043 WRITE(*, *) 'out of histclo'1044 WRITE(*, *) 'Stopping in ', modname1045 WRITE(*, *) 'Reason = ', message1046 CALL getin_dump1047 1048 IF (ierr == 0) THEN1049 WRITE(*, *) 'Everything is cool'1050 else1051 WRITE(*, *) 'Houston, we have a problem ', ierr1052 endif1053 STOP1054 END SUBROUTINE abort_gcm1055 1056 1057 SUBROUTINE gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi)1058 IMPLICIT NONE1059 !=======================================================================1060 ! passage d'un champ de la grille scalaire a la grille physique1061 !=======================================================================1062 1063 !-----------------------------------------------------------------------1064 ! declarations:1065 ! -------------1066 1067 INTEGER im, jm, ngrid, nfield1068 REAL pdyn(im, jm, nfield)1069 REAL pfi(ngrid, nfield)1070 1071 INTEGER j, ifield, ig1072 1073 !-----------------------------------------------------------------------1074 ! calcul:1075 ! -------1076 1077 IF(ngrid/=2 + (jm - 2) * (im - 1).AND.ngrid/=1) &1078 & STOP 'probleme de dim'1079 ! traitement des poles1080 CALL SCOPY(nfield, pdyn, im * jm, pfi, ngrid)1081 CALL SCOPY(nfield, pdyn(1, jm, 1), im * jm, pfi(ngrid, 1), ngrid)1082 1083 ! traitement des point normaux1084 DO ifield = 1, nfield1085 DO j = 2, jm - 11086 ig = 2 + (j - 2) * (im - 1)1087 CALL SCOPY(im - 1, pdyn(1, j, ifield), 1, pfi(ig, ifield), 1)1088 ENDDO1089 ENDDO1090 END SUBROUTINE gr_dyn_fi1091 1092 1093 983 SUBROUTINE disvert0(pa, preff, ap, bp, dpres, presnivs, nivsigs, nivsig) 1094 984 … … 1852 1742 1853 1743 END MODULE lmdz_1dutils 1744 1745 SUBROUTINE gr_fi_dyn(nfield, ngrid, im, jm, pfi, pdyn) 1746 USE lmdz_ssum_scopy, ONLY: scopy 1747 1748 IMPLICIT NONE 1749 !======================================================================= 1750 ! passage d'un champ de la grille scalaire a la grille physique 1751 !======================================================================= 1752 1753 !----------------------------------------------------------------------- 1754 ! declarations: 1755 ! ------------- 1756 1757 INTEGER im, jm, ngrid, nfield 1758 REAL pdyn(im, jm, nfield) 1759 REAL pfi(ngrid, nfield) 1760 1761 INTEGER i, j, ifield, ig 1762 1763 !----------------------------------------------------------------------- 1764 ! calcul: 1765 ! ------- 1766 1767 DO ifield = 1, nfield 1768 ! traitement des poles 1769 DO i = 1, im 1770 pdyn(i, 1, ifield) = pfi(1, ifield) 1771 pdyn(i, jm, ifield) = pfi(ngrid, ifield) 1772 ENDDO 1773 1774 ! traitement des point normaux 1775 DO j = 2, jm - 1 1776 ig = 2 + (j - 2) * (im - 1) 1777 CALL SCOPY(im - 1, pfi(ig, ifield), 1, pdyn(1, j, ifield), 1) 1778 pdyn(im, j, ifield) = pdyn(1, j, ifield) 1779 ENDDO 1780 ENDDO 1781 1782 END SUBROUTINE gr_fi_dyn 1783 1784 SUBROUTINE gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi) 1785 USE lmdz_ssum_scopy, ONLY: scopy 1786 1787 IMPLICIT NONE 1788 !======================================================================= 1789 ! passage d'un champ de la grille scalaire a la grille physique 1790 !======================================================================= 1791 1792 !----------------------------------------------------------------------- 1793 ! declarations: 1794 ! ------------- 1795 1796 INTEGER im, jm, ngrid, nfield 1797 REAL pdyn(im, jm, nfield) 1798 REAL pfi(ngrid, nfield) 1799 1800 INTEGER j, ifield, ig 1801 1802 !----------------------------------------------------------------------- 1803 ! calcul: 1804 ! ------- 1805 1806 IF(ngrid/=2 + (jm - 2) * (im - 1).AND.ngrid/=1) & 1807 & STOP 'probleme de dim' 1808 ! traitement des poles 1809 CALL SCOPY(nfield, pdyn, im * jm, pfi, ngrid) 1810 CALL SCOPY(nfield, pdyn(1, jm, 1), im * jm, pfi(ngrid, 1), ngrid) 1811 1812 ! traitement des point normaux 1813 DO ifield = 1, nfield 1814 DO j = 2, jm - 1 1815 ig = 2 + (j - 2) * (im - 1) 1816 CALL SCOPY(im - 1, pdyn(1, j, ifield), 1, pfi(ig, ifield), 1) 1817 ENDDO 1818 ENDDO 1819 END SUBROUTINE gr_dyn_fi -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_1dconv.f90
r5119 r5128 1 1 MODULE lmdz_old_1dconv 2 IMPLICIT NONE; PRIVATE3 PUBLIC get_uvd, copie 2 PRIVATE ! -- We'd love to put IMPLICIT NONE; here... 3 PUBLIC get_uvd, copie, get_uvd2, rdgrads, spaces 4 4 CONTAINS 5 5 … … 67 67 INTEGER itap 68 68 REAL dtime 69 REAL ht( 100)70 REAL hq( 100)71 REAL hu( 100)72 REAL hv( 100)73 REAL hw( 100)74 REAL hthturb( 100)75 REAL hqturb( 100)69 REAL ht(:) 70 REAL hq(:) 71 REAL hu(:) 72 REAL hv(:) 73 REAL hw(:) 74 REAL hthturb(:) 75 REAL hqturb(:) 76 76 REAL Ts, Ts_subr 77 77 LOGICAL imp_fcg … … 142 142 ! variables destinees a la lecture du pas de temps du fichier de donnees 143 143 !--------------------------------------------------------------------- 144 character*80 aaa, atemps, spaces,apasmax144 character*80 aaa, atemps, apasmax 145 145 INTEGER nch, imn, ipa 146 !---------------------------------------------------------------------147 ! procedures appelees148 external rdgrads !lire en iterant dans forcing.dat149 146 !--------------------------------------------------------------------- 150 147 PRINT*, 'le pas itap est:', itap … … 583 580 584 581 character*4 a 585 character*80 aaa, anblvl , spaces582 character*80 aaa, anblvl 586 583 INTEGER nch 587 584 … … 812 809 ENDIF 813 810 END 814 CHARACTER*( *) FUNCTION SPACES(STR, NSPACE)811 CHARACTER*(80) FUNCTION SPACES(STR, NSPACE) 815 812 816 813 ! CERN PROGLIB# M433 SPACES .VERSION KERNFOR 4.14 860211 … … 821 818 !- replaced by NSPACE blanks inside the string STR 822 819 823 CHARACTER*( *) STR824 INTEGER nspace 820 CHARACTER*(80) STR 821 INTEGER nspace, IBLANK, ISPACE, INONBL, LENSPA 825 822 826 823 LENSPA = LEN(SPACES) … … 854 851 855 852 CHARACTER*(*) STR, SSTR 856 INTEGER I 853 INTEGER I, LENS, LENSS 857 854 858 855 LENS = LEN(STR) -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_lmdz1d.F90
r5117 r5128 2 2 3 3 MODULE lmdz_old_lmdz1d 4 IMPLICIT NONE; PRIVATE 4 USE lmdz_old_1dconv, ONLY: copie, get_uvd2, get_uvd, rdgrads, spaces 5 USE lmdz_1dutils, ONLY: interp2_case_vertical, nudge_uv, nudge_rht, lstendh, nudge_uv_init, & 6 nudge_rht_init, disvert0 7 PRIVATE ! -- We'd love to put IMPLICIT NONE; here... 5 8 PUBLIC old_lmdz1d 6 9 CONTAINS -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_scm.F90
r5117 r5128 1 1 MODULE lmdz_scm 2 ; PRIVATE2 PRIVATE ! -- We'd love to put IMPLICIT NONE; here... 3 3 PUBLIC scm 4 4 CONTAINS … … 41 41 itau_dyn, itau_phy, start_time, year_len 42 42 USE phys_cal_mod, ONLY: year_len_phys_cal_mod => year_len 43 USE lmdz_1dutils, ONLY: fq_sat, conf_unicol, dyn1deta0, dyn1dredem 43 USE lmdz_1dutils, ONLY: fq_sat, conf_unicol, dyn1deta0, dyn1dredem, disvert0 44 44 45 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_OUTPUTPHYSSCM 45 END SUBROUTINE scm 46 46 47 47 INCLUDE "dimensions.h" 48 48 INCLUDE "YOMCST.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/replay1d.F90
r5119 r5128 88 88 89 89 !======================================================================= 90 SUBROUTINE abort_gcm(modname, message, ierr)91 USE IOIPSL92 ! Stops the simulation cleanly, closing files and printing various93 ! comments94 !=======================================================================95 96 ! Input: modname = name of calling program97 ! message = stuff to print98 ! ierr = severity of situation ( = 0 normal )99 100 CHARACTER(LEN = *) modname101 INTEGER ierr102 CHARACTER(LEN = *) message103 104 WRITE(*, *) 'in abort_gcm'105 CALL histclo106 WRITE(*, *) 'out of histclo'107 WRITE(*, *) 'Stopping in ', modname108 WRITE(*, *) 'Reason = ', message109 CALL getin_dump110 111 IF (ierr == 0) THEN112 WRITE(*, *) 'Everything is cool'113 else114 WRITE(*, *) 'Houston, we have a problem ', ierr115 endif116 STOP117 END118 119 !=======================================================================120 90 SUBROUTINE gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi) 121 91 USE lmdz_ssum_scopy, ONLY: scopy
Note: See TracChangeset
for help on using the changeset viewer.