Changeset 3686
- Timestamp:
- May 27, 2020, 2:59:10 PM (5 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd/dyn1d
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/dyn1d/1DUTILS.h
r3682 r3686 627 627 RETURN 628 628 END 629 !630 SUBROUTINE conf_unicol_std631 !632 #ifdef CPP_IOIPSL633 use IOIPSL634 #else635 ! if not using IOIPSL, we still need to use (a local version of) getin636 use ioipsl_getincom637 #endif638 USE print_control_mod, ONLY: lunout639 IMPLICIT NONE640 !-----------------------------------------------------------------------641 ! Auteurs : A. Lahellec - adaptation au format standard.642 !643 ! Declarations :644 ! --------------645 646 #include "compar1d_std.h"647 #include "flux_arp.h"648 #include "tsoilnudge.h"649 #include "fcg_gcssold.h"650 #include "fcg_racmo.h"651 !652 !653 ! local:654 ! ------655 656 ! CHARACTER ch1*72,ch2*72,ch3*72,ch4*12657 658 !659 ! -------------------------------------------------------------------660 !661 ! ......... Initilisation parametres du lmdz1D ..........662 !663 !---------------------------------------------------------------------664 ! initialisations:665 ! ----------------666 667 !Config Key = lunout668 !Config Desc = unite de fichier pour les impressions669 !Config Def = 6670 !Config Help = unite de fichier pour les impressions671 !Config (defaut sortie standard = 6)672 lunout=6673 ! CALL getin('lunout', lunout)674 IF (lunout /= 5 .and. lunout /= 6) THEN675 OPEN(lunout,FILE='lmdz.out')676 ENDIF677 678 !Config Key = prt_level679 !Config Desc = niveau d'impressions de debogage680 !Config Def = 0681 !Config Help = Niveau d'impression pour le debogage682 !Config (0 = minimum d'impression)683 ! prt_level = 0684 ! CALL getin('prt_level',prt_level)685 686 !-----------------------------------------------------------------------687 ! Parametres de controle du run:688 !-----------------------------------------------------------------------689 690 !Config Key = restart691 !Config Desc = on repart des startphy et start1dyn692 !Config Def = false693 !Config Help = les fichiers restart doivent etre renomme en start694 restart =.false.695 CALL getin('restart',restart)696 697 !----------------------------------------------------------698 ! Parametres de forcage pour les forcages communs:699 ! Voir ici: https://github.com/romainroehrig/DEPHY-SCM/blob/master/DEPHY_Format_Version_0.pdf700 ! Pour les forcages communs: ces entiers valent 0 ou 1701 ! adv_temp= advection tempe, theta ou thetal, qv,qt,rv ou rt702 ! rad_temp= 0 (rayonnement actif) ou 1 (prescrit par tend_rad) ou adv (prescir et contenu dans les adv_temp)703 ! idem rad_theta et rad_thetal704 ! forcages en omega, w, vent geostrophique ou ustar705 ! Parametres de nudging en u,v,temp, theta, thetal,qv, qt, rv, rt valent 0 ou 1 ou le temps de nudging706 ! p_nudging_xxx pression (Pa) a partir de laquelle appliquer le nudging de xxx707 ! ou z_nudging_xxx hauteur(m) a partir de laquelle appliquer le nudging de xxx708 !----------------------------------------------------------709 !710 !Parametres de forcage711 !Config Key = adv_temp712 !Config Desc = forcage ou non par advection de T713 !Config Def = false714 !Config Help = forcage ou non par advection de T715 adv_temp =0716 CALL getin('adv_temp',adv_temp)717 718 !719 !Parametres de forcage720 !Config Key = adv_theta721 !Config Desc = forcage ou non par advection de Theta722 !Config Def = false723 !Config Help = forcage ou non par advection de Theta724 adv_theta =0725 CALL getin('adv_theta',adv_theta)726 727 !728 !Parametres de forcage729 !Config Key = adv_thetal730 !Config Desc = forcage ou non par advection de Thetal731 !Config Def = false732 !Config Help = forcage ou non par advection de Thetal733 adv_thetal =0734 CALL getin('adv_thetal',adv_thetal)735 736 !737 !Parametres de forcage738 !Config Key = rad_temp739 !Config Desc = forcage par tendance radiative en tempe740 !Config Def = false741 !Config Help = forcage par tendance radiative en tempe742 rad_temp ="0"743 CALL getin('rad_temp',rad_temp)744 745 !746 !Parametres de forcage747 !Config Key = rad_theta748 !Config Desc = forcage par tendance radiative en theta749 !Config Def = false750 !Config Help = forcage par tendance radiative en theta751 rad_theta ="0"752 CALL getin('rad_theta',rad_theta)753 754 !755 !Parametres de forcage756 !Config Key = rad_thetal757 !Config Desc = forcage par tendance radiative en thetal758 !Config Def = false759 !Config Help = forcage par tendance radiative en thetal760 rad_thetal ="0"761 CALL getin('rad_thetal',rad_thetal)762 763 !764 !Parametres de forcage765 !Config Key = adv_qv766 !Config Desc = forcage ou non par advection de qv767 !Config Def = false768 !Config Help = forcage ou non par advection de qv769 adv_qv =0770 CALL getin('adv_qv',adv_qv)771 772 !773 !Parametres de forcage774 !Config Key = adv_qt775 !Config Desc = forcage ou non par advection de qt776 !Config Def = false777 !Config Help = forcage ou non par advection de qt778 adv_qt =0779 CALL getin('adv_qt',adv_qt)780 781 !782 !Parametres de forcage783 !Config Key = adv_rv784 !Config Desc = forcage ou non par advection de rv785 !Config Def = false786 !Config Help = forcage ou non par advection de rv787 adv_rv =0788 CALL getin('adv_rv',adv_rv)789 790 !791 !Parametres de forcage792 !Config Key = adv_rt793 !Config Desc = forcage ou non par advection de rt794 !Config Def = false795 !Config Help = forcage ou non par advection de rt796 adv_rt =0797 CALL getin('adv_rt',adv_rt)798 799 !800 !Parametres de forcage801 !Config Key = nudging_temp802 !Config Desc = forcage ou non par advection de tempe803 !Config Def = false804 !Config Help = forcage ou non par advection de tempe805 nudging_temp =0806 CALL getin('nudging_temp',nudging_temp)807 808 !809 !Parametres de forcage810 !Config Key = nudging_theta811 !Config Desc = forcage ou non par advection de theta812 !Config Def = false813 !Config Help = forcage ou non par advection de theta814 nudging_theta =0815 CALL getin('nudging_theta',nudging_theta)816 817 !818 !Parametres de forcage819 !Config Key = nudging_thetal820 !Config Desc = forcage ou non par advection de thetal821 !Config Def = false822 !Config Help = forcage ou non par advection de thetal823 nudging_thetal =0824 CALL getin('nudging_thetal',nudging_thetal)825 826 !827 !Parametres de forcage828 !Config Key = nudging_qv829 !Config Desc = forcage ou non par advection de qv830 !Config Def = false831 !Config Help = forcage ou non par advection de qv832 nudging_qv =0833 CALL getin('nudging_qv',nudging_qv)834 835 !836 !Parametres de forcage837 !Config Key = nudging_qt838 !Config Desc = forcage ou non par advection de qt839 !Config Def = false840 !Config Help = forcage ou non par advection de qt841 nudging_qt =0842 CALL getin('nudging_qt',nudging_qt)843 844 !845 !Parametres de forcage846 !Config Key = nudging_rv847 !Config Desc = forcage ou non par advection de rv848 !Config Def = false849 !Config Help = forcage ou non par advection de rv850 nudging_rv =0851 CALL getin('nudging_rv',nudging_rv)852 853 !854 !Parametres de forcage855 !Config Key = nudging_rt856 !Config Desc = forcage ou non par advection de rt857 !Config Def = false858 !Config Help = forcage ou non par advection de rt859 nudging_rt =0860 CALL getin('nudging_rt',nudging_rt)861 862 !863 !Parametres de forcage864 !Config Key = nudging_u865 !Config Desc = forcage ou non par advection de u wind866 !Config Def = false867 !Config Help = forcage ou non par advection de u wind868 nudging_u =0869 CALL getin('nudging_u',nudging_u)870 871 !872 !Parametres de forcage873 !Config Key = nudging_v874 !Config Desc = forcage ou non par advection de v wind875 !Config Def = false876 !Config Help = forcage ou non par advection de v wind877 nudging_v =0878 CALL getin('nudging_v',nudging_v)879 880 !881 !Parametres de forcage882 !Config Key = p_nudging_temp883 !Config Desc = Pressure (Pa) above which tempe should be nudged884 !Config Def = false885 !Config Help = Pressure (Pa) above which tempe should be nudged886 p_nudging_temp =11000.887 CALL getin('p_nudging_tempe',p_nudging_temp)888 889 !890 !Parametres de forcage891 !Config Key = p_nudging_theta892 !Config Desc = Pressure (Pa) above which theta should be nudged893 !Config Def = false894 !Config Help = Pressure (Pa) above which theta should be nudged895 p_nudging_theta =11000.896 CALL getin('p_nudging_theta',p_nudging_theta)897 898 !899 !Parametres de forcage900 !Config Key = p_nudging_thetal901 !Config Desc = Pressure (Pa) above which thetal should be nudged902 !Config Def = false903 !Config Help = Pressure (Pa) above which thetal should be nudged904 p_nudging_thetal =11000.905 CALL getin('p_nudging_thetal',p_nudging_thetal)906 907 !908 !Parametres de forcage909 !Config Key = p_nudging_qv910 !Config Desc = Pressure (Pa) above which qv should be nudged911 !Config Def = false912 !Config Help = Pressure (Pa) above which qv should be nudged913 p_nudging_qv =11000.914 CALL getin('p_nudging_qv',p_nudging_qv)915 916 !917 !Parametres de forcage918 !Config Key = p_nudging_qt919 !Config Desc = Pressure (Pa) above which qt should be nudged920 !Config Def = false921 !Config Help = Pressure (Pa) above which qt should be nudged922 p_nudging_qt =11000.923 CALL getin('p_nudging_qt',p_nudging_qt)924 925 !926 !Parametres de forcage927 !Config Key = p_nudging_rv928 !Config Desc = Pressure (Pa) above which rv should be nudged929 !Config Def = false930 !Config Help = Pressure (Pa) above which rv should be nudged931 p_nudging_rv =11000.932 CALL getin('p_nudging_rv',p_nudging_rv)933 934 !935 !Parametres de forcage936 !Config Key = p_nudging_rt937 !Config Desc = Pressure (Pa) above which rt should be nudged938 !Config Def = false939 !Config Help = Pressure (Pa) above which rt should be nudged940 p_nudging_rt =11000.941 CALL getin('p_nudging_rt',p_nudging_rt)942 943 !944 !Parametres de forcage945 !Config Key = p_nudging_u946 !Config Desc = Pressure (Pa) above which u should be nudged947 !Config Def = false948 !Config Help = Pressure (Pa) above which u should be nudged949 p_nudging_u =11000.950 CALL getin('p_nudging_u',p_nudging_u)951 952 !953 !Parametres de forcage954 !Config Key = p_nudging_v955 !Config Desc = Pressure (Pa) above which v should be nudged956 !Config Def = false957 !Config Help = Pressure (Pa) above which v should be nudged958 p_nudging_v =11000.959 CALL getin('p_nudging_v',p_nudging_v)960 961 !962 !Parametres de forcage963 !Config Key = z_nudging_temp964 !Config Desc = Height (m) above which tempe should be nudged965 !Config Def = false966 !Config Help = Height (m) above which tempe should be nudged967 z_nudging_temp=0.968 CALL getin('z_nudging_tempe',z_nudging_temp)969 970 !971 !Parametres de forcage972 !Config Key = z_nudging_theta973 !Config Desc = Height (m) above which theta should be nudged974 !Config Def = false975 !Config Help = Height (m) above which theta should be nudged976 z_nudging_theta=0.977 CALL getin('z_nudging_theta',z_nudging_theta)978 979 !980 !Parametres de forcage981 !Config Key = z_nudging_thetal982 !Config Desc = Height (m) above which thetal should be nudged983 !Config Def = false984 !Config Help = Height (m) above which thetal should be nudged985 z_nudging_thetal=0.986 CALL getin('z_nudging_thetal',z_nudging_thetal)987 988 !989 !Parametres de forcage990 !Config Key = z_nudging_qv991 !Config Desc = Height (m) above which qv should be nudged992 !Config Def = false993 !Config Help = Height (m) above which qv should be nudged994 z_nudging_qv=0.995 CALL getin('z_nudging_qv',z_nudging_qv)996 997 !998 !Parametres de forcage999 !Config Key = z_nudging_qt1000 !Config Desc = Height (m) above which qt should be nudged1001 !Config Def = false1002 !Config Help = Height (m) above which qt should be nudged1003 z_nudging_qt=0.1004 CALL getin('z_nudging_qt',z_nudging_qt)1005 1006 !1007 !Parametres de forcage1008 !Config Key = z_nudging_rv1009 !Config Desc = Height (m) above which rv should be nudged1010 !Config Def = false1011 !Config Help = Height (m) above which rv should be nudged1012 z_nudging_rv=0.1013 CALL getin('z_nudging_rv',z_nudging_rv)1014 1015 !1016 !Parametres de forcage1017 !Config Key = z_nudging_rt1018 !Config Desc = Height (m) above which rt should be nudged1019 !Config Def = false1020 !Config Help = Height (m) above which rt should be nudged1021 z_nudging_rt=0.1022 CALL getin('z_nudging_rt',z_nudging_rt)1023 1024 !1025 !Parametres de forcage1026 !Config Key = z_nudging_u1027 !Config Desc = Height (m) above which u should be nudged1028 !Config Def = false1029 !Config Help = Height (m) above which u should be nudged1030 z_nudging_u=0.1031 CALL getin('z_nudging_u',z_nudging_u)1032 1033 !1034 !Parametres de forcage1035 !Config Key = z_nudging_v1036 !config desc = height (m) above which v should be nudged1037 !config def = false1038 !config help = height (m) above which v should be nudged1039 z_nudging_v=0.1040 call getin('z_nudging_v',z_nudging_v)1041 1042 !config key = ok_flux_surf1043 !config desc = forcage ou non par les flux de surface1044 !config def = false1045 !config help = forcage ou non par les flux de surface1046 ok_flux_surf =.false.1047 call getin('ok_flux_surf',ok_flux_surf)1048 1049 !config key = ok_prescr_ust1050 !config desc = ustar impose ou non1051 !config def = false1052 !config help = ustar impose ou non1053 ok_prescr_ust = .false.1054 call getin('ok_prescr_ust',ok_prescr_ust)1055 1056 !config key = ok_old_disvert1057 !config desc = utilisation de l ancien programme disvert0 (dans 1dutils.h)1058 !config def = false1059 !config help = utilisation de l ancien programme disvert0 (dans 1dutils.h)1060 ok_old_disvert = .false.1061 call getin('ok_old_disvert',ok_old_disvert)1062 1063 !config key = time_ini1064 !config desc = meaningless in this case1065 !config def = 0.1066 !config help =1067 tsurf = 0.1068 call getin('time_ini',time_ini)1069 1070 !config key = rlat et rlon1071 !config desc = latitude et longitude1072 !config def = 0.0 0.01073 !config help = fixe la position de la colonne1074 xlat = 0.1075 xlon = 0.1076 call getin('rlat',xlat)1077 call getin('rlon',xlon)1078 1079 !config key = airephy1080 !config desc = grid cell area1081 !config def = 1.e111082 !config help =1083 airefi = 1.e111084 call getin('airephy',airefi)1085 1086 !config key = nat_surf1087 !config desc = surface type1088 !config def = 0 (ocean)1089 !config help = 0=ocean,1=land,2=glacier,3=banquise1090 nat_surf = 0.1091 call getin('nat_surf',nat_surf)1092 1093 !config key = tsurf1094 !config desc = surface temperature1095 !config def = 290.1096 !config help = not used if type_ts_forcing=1 in lmdz1d.f1097 tsurf = 290.1098 call getin('tsurf',tsurf)1099 1100 !config key = psurf1101 !config desc = surface pressure1102 !config def = 102400.1103 !config help =1104 psurf = 102400.1105 call getin('psurf',psurf)1106 1107 !config key = zsurf1108 !config desc = surface altitude1109 !config def = 0.1110 !config help =1111 zsurf = 0.1112 call getin('zsurf',zsurf)1113 1114 !config key = rugos1115 !config desc = coefficient de frottement1116 !config def = 0.00011117 !config help = calcul du cdrag1118 rugos = 0.00011119 call getin('rugos',rugos)1120 ! fh/2020/04/08/confinement: pour le nouveau format standard, la rugosite s'appelle z01121 call getin('z0',rugos)1122 1123 !config key = rugosh1124 !config desc = coefficient de frottement1125 !config def = rugos1126 !config help = calcul du cdrag1127 rugosh = rugos1128 call getin('rugosh',rugosh)1129 1130 !config key = snowmass1131 !config desc = mass de neige de la surface en kg/m21132 !config def = 0.00001133 !config help = snowmass1134 snowmass = 0.00001135 call getin('snowmass',snowmass)1136 1137 !config key = wtsurf et wqsurf1138 !config desc = ???1139 !config def = 0.0 0.01140 !config help =1141 wtsurf = 0.01142 wqsurf = 0.01143 call getin('wtsurf',wtsurf)1144 call getin('wqsurf',wqsurf)1145 1146 !config key = albedo1147 !config desc = albedo1148 !config def = 0.091149 !config help =1150 albedo = 0.091151 call getin('albedo',albedo)1152 1153 !config key = agesno1154 !config desc = age de la neige1155 !config def = 30.01156 !config help =1157 xagesno = 30.01158 call getin('agesno',xagesno)1159 1160 !config key = restart_runoff1161 !config desc = age de la neige1162 !config def = 30.01163 !config help =1164 restart_runoff = 0.01165 call getin('restart_runoff',restart_runoff)1166 1167 !config key = qsolinp1168 !config desc = initial bucket water content (kg/m2) when land (5std)1169 !config def = 30.01170 !config help =1171 qsolinp = 1.1172 call getin('qsolinp',qsolinp)1173 1174 !config key = zpicinp1175 !config desc = denivellation orographie1176 !config def = 0.1177 !config help = input brise1178 zpicinp = 0.1179 call getin('zpicinp',zpicinp)1180 1181 !config key = nudge_tsoil1182 !config desc = activation of soil temperature nudging1183 !config def = .false.1184 !config help = ...1185 nudge_tsoil=.false.1186 call getin('nudge_tsoil',nudge_tsoil)1187 1188 !config key = isoil_nudge1189 !config desc = level number where soil temperature is nudged1190 !config def = 31191 !config help = ...1192 isoil_nudge=31193 call getin('isoil_nudge',isoil_nudge)1194 1195 !config key = tsoil_nudge1196 !config desc = target temperature for tsoil(isoil_nudge)1197 !config def = 300.1198 !config help = ...1199 tsoil_nudge=300.1200 call getin('tsoil_nudge',tsoil_nudge)1201 1202 !config key = tau_soil_nudge1203 !config desc = nudging relaxation time for tsoil1204 !config def = 3600.1205 !config help = ...1206 tau_soil_nudge=3600.1207 call getin('tau_soil_nudge',tau_soil_nudge)1208 1209 !config key = forc_omega1210 !config desc = forcage ou non par omega1211 !config def = false1212 !config help = forcage ou non par omega1213 forc_omega =01214 call getin('forc_omega',forc_omega)1215 1216 !config key = forc_w1217 !config desc = forcage ou non par w1218 !config def = false1219 !config help = forcage ou non par w1220 forc_w =01221 call getin('forc_w',forc_w)1222 1223 !config key = forc_geo1224 !config desc = forcage ou non par geo1225 !config def = false1226 !config help = forcage ou non par geo1227 forc_geo =01228 call getin('forc_geo',forc_geo)1229 1230 ! meme chose que ok_precr_ust1231 !config key = forc_ustar1232 !config desc = forcage ou non par ustar1233 !config def = false1234 !config help = forcage ou non par ustar1235 forc_ustar =01236 call getin('forc_ustar',forc_ustar)1237 if (forc_ustar .eq. 1) ok_prescr_ust=.true.1238 1239 1240 write(lunout,*)' +++++++++++++++++++++++++++++++++++++++'1241 write(lunout,*)' configuration des parametres du gcm1d: '1242 write(lunout,*)' +++++++++++++++++++++++++++++++++++++++'1243 write(lunout,*)' restart = ', restart1244 write(lunout,*)' forcing_type = ', forcing_type1245 write(lunout,*)' time_ini = ', time_ini1246 write(lunout,*)' rlat = ', xlat1247 write(lunout,*)' rlon = ', xlon1248 write(lunout,*)' airephy = ', airefi1249 write(lunout,*)' nat_surf = ', nat_surf1250 write(lunout,*)' tsurf = ', tsurf1251 write(lunout,*)' psurf = ', psurf1252 write(lunout,*)' zsurf = ', zsurf1253 write(lunout,*)' rugos = ', rugos1254 write(lunout,*)' snowmass=', snowmass1255 write(lunout,*)' wtsurf = ', wtsurf1256 write(lunout,*)' wqsurf = ', wqsurf1257 write(lunout,*)' albedo = ', albedo1258 write(lunout,*)' xagesno = ', xagesno1259 write(lunout,*)' restart_runoff = ', restart_runoff1260 write(lunout,*)' qsolinp = ', qsolinp1261 write(lunout,*)' zpicinp = ', zpicinp1262 write(lunout,*)' nudge_tsoil = ', nudge_tsoil1263 write(lunout,*)' isoil_nudge = ', isoil_nudge1264 write(lunout,*)' tsoil_nudge = ', tsoil_nudge1265 write(lunout,*)' tau_soil_nudge = ', tau_soil_nudge1266 write(lunout,*)' adv_temp = ', adv_temp1267 write(lunout,*)' adv_theta = ', adv_theta1268 write(lunout,*)' adv_thetal = ', adv_thetal1269 write(lunout,*)' rad_temp = ', rad_temp1270 write(lunout,*)' rad_theta = ', rad_theta1271 write(lunout,*)' rad_thetal = ', rad_thetal1272 write(lunout,*)' adv_qv = ', adv_qv1273 write(lunout,*)' adv_qt = ', adv_qt1274 write(lunout,*)' adv_rv = ', adv_rv1275 write(lunout,*)' adv_rt = ', adv_rt1276 write(lunout,*)' nudging_temp = ', nudging_temp1277 write(lunout,*)' nudging_theta = ', nudging_theta1278 write(lunout,*)' nudging_thetal = ', nudging_thetal1279 write(lunout,*)' nudging_qv = ', nudging_qv1280 write(lunout,*)' nudging_qt = ', nudging_qt1281 write(lunout,*)' nudging_rv = ', nudging_rv1282 write(lunout,*)' nudging_rt = ', nudging_rt1283 write(lunout,*)' p_nudging_temp = ', p_nudging_temp1284 write(lunout,*)' p_nudging_theta = ', p_nudging_theta1285 write(lunout,*)' p_nudging_thetal = ', p_nudging_thetal1286 write(lunout,*)' p_nudging_qv = ', p_nudging_qv1287 write(lunout,*)' p_nudging_qt = ', p_nudging_qt1288 write(lunout,*)' p_nudging_rv = ', p_nudging_rv1289 write(lunout,*)' p_nudging_rt = ', p_nudging_rt1290 write(lunout,*)' z_nudging_temp = ', z_nudging_temp1291 write(lunout,*)' z_nudging_theta = ', z_nudging_theta1292 write(lunout,*)' z_nudging_thetal = ', z_nudging_thetal1293 write(lunout,*)' z_nudging_qv = ', z_nudging_qv1294 write(lunout,*)' z_nudging_qt = ', z_nudging_qt1295 write(lunout,*)' z_nudging_rv = ', z_nudging_rv1296 write(lunout,*)' z_nudging_rt = ', z_nudging_rt1297 write(lunout,*)' forc_omega = ', forc_omega1298 write(lunout,*)' forc_w = ', forc_w1299 write(lunout,*)' forc_geo = ', forc_geo1300 write(lunout,*)' forc_ustar = ', forc_ustar1301 IF (forcing_type .eq.40) THEN1302 write(lunout,*) '--- Forcing type GCSS Old --- with:'1303 write(lunout,*)'imp_fcg',imp_fcg_gcssold1304 write(lunout,*)'ts_fcg',ts_fcg_gcssold1305 write(lunout,*)'tp_fcg',Tp_fcg_gcssold1306 write(lunout,*)'tp_ini',Tp_ini_gcssold1307 write(lunout,*)'xturb_fcg',xTurb_fcg_gcssold1308 ENDIF1309 1310 write(lunout,*)' +++++++++++++++++++++++++++++++++++++++'1311 write(lunout,*)1312 !1313 RETURN1314 END1315 629 ! 1316 630 ! $Id: dyn1deta0.F 1279 2010/07/30 A Lahellec$ -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_decl_cases.h
r3680 r3686 34 34 real w_mod(llm), t_mod(llm),q_mod(llm) 35 35 real u_mod(llm),v_mod(llm), ht_mod(llm),vt_mod(llm),ug_mod(llm),vg_mod(llm) 36 36 real temp_nudg_mod(llm),qv_nudg_mod(llm),u_nudg_mod(llm),v_nudg_mod(llm) 37 37 real hq_mod(llm),vq_mod(llm),qv_mod(llm),ql_mod(llm),qt_mod(llm) 38 38 real th_mod(llm) … … 280 280 !Declarations specifiques au cas standard 281 281 282 real plev_mod_cas(llm) 283 real t_mod_cas(llm),theta_mod_cas(llm),thl_mod_cas(llm),thv_mod_cas(llm) 284 real qt_mod_cas(llm),qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm),q_mod_cas(llm) 285 real rt_mod_cas(llm),rv_mod_cas(llm),rl_mod_cas(llm),ri_mod_cas(llm),rh_mod_cas(llm) 282 real w_mod_cas(llm), t_mod_cas(llm),q_mod_cas(llm) 283 real theta_mod_cas(llm),thl_mod_cas(llm),thv_mod_cas(llm) 284 real qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm) 286 285 real ug_mod_cas(llm),vg_mod_cas(llm) 287 real temp_nudg_mod_cas(llm),th_nudg_mod_cas(llm),thl_nudg_mod_cas(llm) 288 real qt_nudg_mod_cas(llm),qv_nudg_mod_cas(llm),rt_nudg_mod_cas(llm),rv_nudg_mod_cas(llm) 289 real u_nudg_mod_cas(llm),v_nudg_mod_cas(llm) 290 real uadv_mod_cas(llm),vadv_mod_cas(llm) 291 real qtadv_mod_cas(llm),qvadv_mod_cas(llm) 292 real rtadv_mod_cas(llm),rvadv_mod_cas(llm) 293 real tadv_mod_cas(llm),thadv_mod_cas(llm),thladv_mod_cas(llm) 294 real trad_mod_cas(llm),thrad_mod_cas(llm),thlrad_mod_cas(llm) 295 real u_mod_cas(llm),v_mod_cas(llm),w_mod_cas(llm) 286 real temp_nudg_mod_cas(llm),qv_nudg_mod_cas(llm),v_nudg_mod_cas(llm),u_nudg_mod_cas(llm) 287 real u_mod_cas(llm),v_mod_cas(llm) 296 288 real omega_mod_cas(llm) 297 289 real ht_mod_cas(llm),vt_mod_cas(llm),dt_mod_cas(llm),dtrad_mod_cas(llm) -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_interp_cases.h
r3682 r3686 7 7 8 8 ! time interpolation: 9 CALL interp_case_time_std(day,day1,annee_ref & 10 & ,nt_cas,nlev_cas & 11 & ,ts_cas,ps_cas,ps_forc_cas,plev_cas,ppforc_cas,t_cas,theta_cas,thl_cas& 12 & ,qt0_cas,qv0_cas,ql0_cas,qi0_cas & 13 & ,rt0_cas,rv0_cas,rl0_cas,ri0_cas,rh0_cas & 14 & ,u_cas,v_cas,w_cas,omega_cas,ug_cas,vg_cas & 15 & ,temp_nudg_cas,th_nudg_cas,thl_nudg_cas,qt_nudg_cas,qv_nudg_cas & 16 & ,rt_nudg_cas,rv_nudg_cas,u_nudg_cas,v_nudg_cas & 17 & ,uadv_cas,vadv_cas,tadv_cas,thadv_cas,thladv_cas & 18 & ,qtadv_cas,qvadv_cas,rtadv_cas,rvadv_cas & 19 & ,trad_cas,thrad_cas,thlrad_cas & 20 & ,tke_cas,lat_cas,sens_cas,ustar_cas & 21 & ,wpthetap_cas,wpqtp_cas,wpqvp_cas,wprtp_cas,wprvp_cas & 9 CALL interp_case_time_std(daytime,day1,annee_ref & 10 ! & ,year_ini_cas,day_ju_ini_cas,nt_cas,pdt_cas,nlev_cas & 11 & ,nt_cas,nlev_cas & 12 & ,ts_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 & ,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 16 & ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 17 & ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas,lat_cas,sens_cas,ustar_cas & 18 & ,uw_cas,vw_cas,q1_cas,q2_cas,tke_cas & 22 19 ! 23 & ,ts_prof_cas,ps_prof_cas,ps_forc_prof_cas,plev_prof_cas,pforc_prof_cas& 24 & ,t_prof_cas,th_prof_cas,thl_prof_cas & 25 & ,qt_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 26 & ,rt_prof_cas,rv_prof_cas,rl_prof_cas,ri_prof_cas,rh_prof_cas & 27 & ,u_prof_cas,v_prof_cas,w_prof_cas,omega_prof_cas & 28 & ,ug_prof_cas,vg_prof_cas & 29 & ,temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas & 30 & ,qt_nudg_prof_cas,qv_nudg_prof_cas & 31 & ,rt_nudg_prof_cas,rv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 32 & ,uadv_prof_cas,vadv_prof_cas,tadv_prof_cas,thadv_prof_cas,thladv_prof_cas& 33 & ,qtadv_prof_cas,qvadv_prof_cas,rtadv_prof_cas,rvadv_prof_cas & 34 & ,trad_prof_cas,thrad_prof_cas,thlrad_prof_cas & 35 & ,tke_prof_cas,lat_prof_cas,sens_prof_cas,ustar_prof_cas & 36 & ,wpthetap_prof_cas,wpqtp_prof_cas,wpqvp_prof_cas,wprtp_prof_cas,wprvp_prof_cas) 20 & ,ts_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas,thv_prof_cas & 21 & ,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 22 & ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 23 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 24 & ,vitw_prof_cas,omega_prof_cas & 25 & ,du_prof_cas,hu_prof_cas,vu_prof_cas & 26 & ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & 27 & ,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 28 & ,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas & 29 & ,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tke_prof_cas) 37 30 38 31 ts_cur = ts_prof_cas … … 41 34 42 35 ! vertical interpolation: 43 CALL interp_case_vertical_std(nlev_cas & 44 & ,plev_prof_cas,t_prof_cas,th_prof_cas,thl_prof_cas & 45 & ,qt_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 46 & ,rt_prof_cas,rv_prof_cas,rl_prof_cas,ri_prof_cas,rh_prof_cas & 47 & ,u_prof_cas,v_prof_cas,w_prof_cas,omega_prof_cas & 48 & ,ug_prof_cas,vg_prof_cas & 49 & ,temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas & 50 & ,qt_nudg_prof_cas,qv_nudg_prof_cas & 51 & ,rt_nudg_prof_cas,rv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 52 & ,uadv_prof_cas,vadv_prof_cas,tadv_prof_cas,thadv_prof_cas,thladv_prof_cas & 53 & ,qtadv_prof_cas,qvadv_prof_cas,rtadv_prof_cas,rvadv_prof_cas & 54 & ,trad_prof_cas,thrad_prof_cas,thlrad_prof_cas & 36 CALL interp2_case_vertical_std(play,nlev_cas,plev_prof_cas & 37 & ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 38 & ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 39 & ,ug_prof_cas,vg_prof_cas & 40 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 41 & ,vitw_prof_cas,omega_prof_cas & 42 & ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 43 & ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 44 & ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 55 45 ! 56 & ,plev_mod_cas,t_mod_cas,theta_mod_cas,thl_mod_cas & 57 & ,qt_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 58 & ,rt_mod_cas,rv_mod_cas,rl_mod_cas,ri_mod_cas,rh_mod_cas & 59 & ,u_mod_cas,v_mod_cas,w_mod_cas,omega_mod_cas & 60 & ,ug_mod_cas,vg_mod_cas & 61 & ,temp_nudg_mod_cas,th_nudg_mod_cas,thl_nudg_mod_cas & 62 & ,qt_nudg_mod_cas,qv_nudg_mod_cas & 63 & ,rt_nudg_mod_cas,rv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 64 & ,uadv_mod_cas,vadv_mod_cas,tadv_mod_cas,thadv_mod_cas,thladv_mod_cas & 65 & ,qtadv_mod_cas,qvadv_mod_cas,rtadv_mod_cas,rvadv_mod_cas & 66 & ,trad_mod_cas,thrad_mod_cas,thlrad_mod_cas) 46 & ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 47 & ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 48 & ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 49 & ,w_mod_cas,omega_mod_cas & 50 & ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 51 & ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 52 & ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 67 53 68 54 … … 93 79 else 94 80 DO l=2,llm-1 95 81 IF (omega(l)>0.) THEN 96 82 d_t_z(l)=(temp(l+1)-temp(l))/(play(l+1)-play(l)) 97 83 d_th_z(l)=(teta(l+1)-teta(l))/(play(l+1)-play(l)) … … 99 85 d_u_z(l)=(u(l+1)-u(l))/(play(l+1)-play(l)) 100 86 d_v_z(l)=(v(l+1)-v(l))/(play(l+1)-play(l)) 101 87 ELSE 102 88 d_t_z(l)=(temp(l-1)-temp(l))/(play(l-1)-play(l)) 103 89 d_th_z(l)=(teta(l-1)-teta(l))/(play(l-1)-play(l)) … … 105 91 d_u_z(l)=(u(l-1)-u(l))/(play(l-1)-play(l)) 106 92 d_v_z(l)=(v(l-1)-v(l))/(play(l-1)-play(l)) 107 108 93 ENDIF 94 ENDDO 109 95 endif 110 96 d_t_z(1)=d_t_z(2) … … 171 157 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 172 158 173 if ( rad_temp=="1") then159 if (trad.eq.1) then 174 160 tend_rayo=1 175 161 dt_cooling(l) = dtrad_mod_cas(l) -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_read_forc_cases.h
r3680 r3686 17 17 call read_SCM_cas 18 18 write(*,*) 'Forcing read' 19 19 print*,'PS ps_cas',ps_cas 20 20 21 21 !Time interpolation for initial conditions using interpolation routine 22 22 write(*,*) 'AVT 1ere INTERPOLATION: day,day1 = ',daytime,day1 23 CALL interp_case_time_std(day,day1,annee_ref & 24 & ,nt_cas,nlev_cas & 25 & ,ts_cas,ps_cas,ps_forc_cas,plev_cas,ppforc_cas,t_cas,theta_cas,thl_cas& 26 & ,qt0_cas,qv0_cas,ql0_cas,qi0_cas & 27 & ,rt0_cas,rv0_cas,rl0_cas,ri0_cas,rh0_cas & 28 & ,u_cas,v_cas,w_cas,omega_cas,ug_cas,vg_cas & 29 & ,temp_nudg_cas,th_nudg_cas,thl_nudg_cas,qt_nudg_cas,qv_nudg_cas & 30 & ,rt_nudg_cas,rv_nudg_cas,u_nudg_cas,v_nudg_cas & 31 & ,uadv_cas,vadv_cas,tadv_cas,thadv_cas,thladv_cas & 32 & ,qtadv_cas,qvadv_cas,rtadv_cas,rvadv_cas & 33 & ,trad_cas,thrad_cas,thlrad_cas & 34 & ,tke_cas,lat_cas,sens_cas,ustar_cas & 35 & ,wpthetap_cas,wpqtp_cas,wpqvp_cas,wprtp_cas,wprvp_cas & 23 CALL interp_case_time_std(daytime,day1,annee_ref & 24 ! & ,year_ini_cas,day_ju_ini_cas,nt_cas,pdt_cas,nlev_cas & 25 & ,nt_cas,nlev_cas & 26 & ,ts_cas,ps_cas,plev_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas,ql_cas,qi_cas & 27 & ,u_cas,v_cas,ug_cas,vg_cas & 28 & ,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 29 & ,vitw_cas,omega_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,tke_cas & 36 33 ! 37 & ,ts_prof_cas,ps_prof_cas,ps_forc_prof_cas,plev_prof_cas,pforc_prof_cas& 38 & ,t_prof_cas,th_prof_cas,thl_prof_cas & 39 & ,qt_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 40 & ,rt_prof_cas,rv_prof_cas,rl_prof_cas,ri_prof_cas,rh_prof_cas & 41 & ,u_prof_cas,v_prof_cas,w_prof_cas,omega_prof_cas & 42 & ,ug_prof_cas,vg_prof_cas & 43 & ,temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas & 44 & ,qt_nudg_prof_cas,qv_nudg_prof_cas & 45 & ,rt_nudg_prof_cas,rv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 46 & ,uadv_prof_cas,vadv_prof_cas,tadv_prof_cas,thadv_prof_cas,thladv_prof_cas& 47 & ,qtadv_prof_cas,qvadv_prof_cas,rtadv_prof_cas,rvadv_prof_cas & 48 & ,trad_prof_cas,thrad_prof_cas,thlrad_prof_cas & 49 & ,tke_prof_cas,lat_prof_cas,sens_prof_cas,ustar_prof_cas & 50 & ,wpthetap_prof_cas,wpqtp_prof_cas,wpqvp_prof_cas,wprtp_prof_cas,wprvp_prof_cas) 34 & ,ts_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 & ,vitw_prof_cas,omega_prof_cas & 39 & ,du_prof_cas,hu_prof_cas,vu_prof_cas & 40 & ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas,ht_prof_cas,vt_prof_cas & 41 & ,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 42 & ,dth_prof_cas,hth_prof_cas,vth_prof_cas,lat_prof_cas & 43 & ,sens_prof_cas,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tke_prof_cas) 51 44 52 45 do l = 1, nlev_cas … … 56 49 ! vertical interpolation using interpolation routine: 57 50 ! write(*,*)'avant interp vert', t_prof 58 CALL interp_case_vertical_std(nlev_cas & 59 & ,plev_prof_cas,t_prof_cas,th_prof_cas,thl_prof_cas & 60 & ,qt_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 61 & ,rt_prof_cas,rv_prof_cas,rl_prof_cas,ri_prof_cas,rh_prof_cas & 62 & ,u_prof_cas,v_prof_cas,w_prof_cas,omega_prof_cas & 63 & ,ug_prof_cas,vg_prof_cas & 64 & ,temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas & 65 & ,qt_nudg_prof_cas,qv_nudg_prof_cas & 66 & ,rt_nudg_prof_cas,rv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 67 & ,uadv_prof_cas,vadv_prof_cas,tadv_prof_cas,thadv_prof_cas,thladv_prof_cas & 68 & ,qtadv_prof_cas,qvadv_prof_cas,rtadv_prof_cas,rvadv_prof_cas & 69 & ,trad_prof_cas,thrad_prof_cas,thlrad_prof_cas & 51 CALL interp2_case_vertical_std(play,nlev_cas,plev_prof_cas & 52 & ,t_prof_cas,theta_prof_cas,thv_prof_cas,thl_prof_cas & 53 & ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 54 & ,ug_prof_cas,vg_prof_cas & 55 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 56 57 & ,vitw_prof_cas,omega_prof_cas & 58 & ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 59 & ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 60 & ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 70 61 ! 71 & ,plev_mod_cas,t_mod_cas,theta_mod_cas,thl_mod_cas & 72 & ,qt_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 73 & ,rt_mod_cas,rv_mod_cas,rl_mod_cas,ri_mod_cas,rh_mod_cas & 74 & ,u_mod_cas,v_mod_cas,w_mod_cas,omega_mod_cas & 75 & ,ug_mod_cas,vg_mod_cas & 76 & ,temp_nudg_mod_cas,th_nudg_mod_cas,thl_nudg_mod_cas & 77 & ,qt_nudg_mod_cas,qv_nudg_mod_cas & 78 & ,rt_nudg_mod_cas,rv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 79 & ,uadv_mod_cas,vadv_mod_cas,tadv_mod_cas,thadv_mod_cas,thladv_mod_cas & 80 & ,qtadv_mod_cas,qvadv_mod_cas,rtadv_mod_cas,rvadv_mod_cas & 81 & ,trad_mod_cas,thrad_mod_cas,thlrad_mod_cas) 62 & ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 63 & ,u_mod_cas,v_mod_cas,ug_mod_cas,vg_mod_cas & 64 & ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 65 & ,w_mod_cas,omega_mod_cas & 66 & ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 67 & ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 68 & ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 82 69 83 70 -
LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read_std.F90
r3683 r3686 9 9 ! Discr?tisation 10 10 integer nlev_cas, nt_cas 11 real zzs_cas,pp_cas12 11 13 12 14 13 !profils environnementaux 15 real, allocatable:: ppforc_cas(:,:),plev_cas(:,:) 16 17 !profils initiaux 18 real, allocatable:: zzforc_cas(:,:) 19 real, allocatable:: qt0_cas(:),qv0_cas(:),ql0_cas(:),qi0_cas(:),tke_cas(:) 20 real, allocatable:: rt0_cas(:),rv0_cas(:),rl0_cas(:),ri0_cas(:),rh0_cas(:) 21 real, allocatable:: temp0_cas(:),theta0_cas(:), thetal0_cas(:) 22 real, allocatable:: u0_cas(:),v0_cas(:),w_cas(:,:),omega_cas(:,:),ug_cas(:,:), vg_cas(:,:) 23 real, allocatable:: t_cas(:),theta_cas(:), thl_cas(:),u_cas(:),v_cas(:) 24 !advections et nudging 25 real, allocatable:: uadv_cas(:,:),vadv_cas(:,:) 26 real, allocatable:: tadv_cas(:,:),thadv_cas(:,:),thladv_cas(:,:) 27 real, allocatable:: qtadv_cas(:,:),qvadv_cas(:,:) 28 real, allocatable:: rtadv_cas(:,:),rvadv_cas(:,:) 29 real, allocatable:: trad_cas(:,:),thrad_cas(:,:),thlrad_cas(:,:) 30 real, allocatable:: temp_nudg_cas(:,:),th_nudg_cas(:,:),thl_nudg_cas(:,:) 31 real, allocatable:: qv_nudg_cas(:,:),qt_nudg_cas(:,:) 32 real, allocatable:: rv_nudg_cas(:,:),rt_nudg_cas(:,:) 33 real, allocatable:: u_nudg_cas(:,:),v_nudg_cas(:,:) 34 ! flux 35 real, allocatable:: lat_cas(:),sens_cas(:),ustar_cas(:) 36 real, allocatable:: ts_cas(:),ps_cas(:),ps_forc_cas(:) 37 real, allocatable:: wpthetap_cas(:),wpqvp_cas(:),wpqtp_cas(:),wprvp_cas(:),wprtp_cas(:) 14 real, allocatable:: plev_cas(:,:),plevh_cas(:) 15 real, allocatable:: ap_cas(:),bp_cas(:) 16 17 real, allocatable:: z_cas(:,:),zh_cas(:) 18 real, allocatable:: t_cas(:,:),q_cas(:,:),qv_cas(:,:),ql_cas(:,:),qi_cas(:,:),rh_cas(:,:) 19 real, allocatable:: th_cas(:,:),thv_cas(:,:),thl_cas(:,:),rv_cas(:,:) 20 real, allocatable:: u_cas(:,:),v_cas(:,:),vitw_cas(:,:),omega_cas(:,:) 21 22 !forcing 23 real, allocatable:: ht_cas(:,:),vt_cas(:,:),dt_cas(:,:),dtrad_cas(:,:) 24 real, allocatable:: hth_cas(:,:),vth_cas(:,:),dth_cas(:,:) 25 real, allocatable:: hq_cas(:,:),vq_cas(:,:),dq_cas(:,:) 26 real, allocatable:: hr_cas(:,:),vr_cas(:,:),dr_cas(:,:) 27 real, allocatable:: hu_cas(:,:),vu_cas(:,:),du_cas(:,:) 28 real, allocatable:: hv_cas(:,:),vv_cas(:,:),dv_cas(:,:) 29 real, allocatable:: ug_cas(:,:),vg_cas(:,:) 30 real, allocatable:: temp_nudg_cas(:,:),qv_nudg_cas(:,:),u_nudg_cas(:,:),v_nudg_cas(:,:) 31 real, allocatable:: lat_cas(:),sens_cas(:),ts_cas(:),ps_cas(:),ustar_cas(:) 32 real, allocatable:: uw_cas(:,:),vw_cas(:,:),q1_cas(:,:),q2_cas(:,:),tke_cas(:) 38 33 39 34 !champs interpoles 40 35 real, allocatable:: plev_prof_cas(:) 41 real, allocatable:: plev_forc_prof_cas(:) 42 real, allocatable:: pforc_prof_cas(:) 43 real, allocatable:: t_prof_cas(:),th_prof_cas(:),thl_prof_cas(:) 44 real, allocatable:: qt_prof_cas(:),qv_prof_cas(:),ql_prof_cas(:),qi_prof_cas(:) 36 real, allocatable:: t_prof_cas(:) 37 real, allocatable:: theta_prof_cas(:) 38 real, allocatable:: thl_prof_cas(:) 39 real, allocatable:: thv_prof_cas(:) 40 real, allocatable:: q_prof_cas(:) 41 real, allocatable:: qv_prof_cas(:) 42 real, allocatable:: ql_prof_cas(:) 43 real, allocatable:: qi_prof_cas(:) 45 44 real, allocatable:: rh_prof_cas(:) 46 real, allocatable:: rt_prof_cas(:),rv_prof_cas(:),rl_prof_cas(:),ri_prof_cas(:) 47 real, allocatable:: u_prof_cas(:),v_prof_cas(:),w_prof_cas(:),omega_prof_cas(:) 48 real, allocatable:: ug_prof_cas(:),vg_prof_cas(:) 49 real, allocatable:: uadv_prof_cas(:),vadv_prof_cas(:),tadv_prof_cas(:),thadv_prof_cas(:),thladv_prof_cas(:) 50 real, allocatable:: qtadv_prof_cas(:),qvadv_prof_cas(:),rtadv_prof_cas(:),rvadv_prof_cas(:) 51 real, allocatable:: temp_nudg_prof_cas(:), th_nudg_prof_cas(:), thl_nudg_prof_cas(:) 52 real, allocatable:: qv_nudg_prof_cas(:), qt_nudg_prof_cas(:), rv_nudg_prof_cas(:), rt_nudg_prof_cas(:) 53 real, allocatable:: u_nudg_prof_cas(:),v_nudg_prof_cas(:) 54 real, allocatable:: trad_prof_cas(:),thrad_prof_cas(:),thlrad_prof_cas(:) 55 56 real lat_prof_cas,sens_prof_cas,ts_prof_cas,ps_prof_cas,ps_forc_prof_cas,ustar_prof_cas,tke_prof_cas 57 real wpqtp_prof_cas,wpqvp_prof_cas,wprtp_prof_cas,wprvp_prof_cas,wpthetap_prof_cas 58 ! real o3_cas,orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough,heat_rough,rugos_cas,sand_cas,clay_cas 45 real, allocatable:: rv_prof_cas(:) 46 real, allocatable:: u_prof_cas(:) 47 real, allocatable:: v_prof_cas(:) 48 real, allocatable:: vitw_prof_cas(:) 49 real, allocatable:: omega_prof_cas(:) 50 real, allocatable:: ug_prof_cas(:) 51 real, allocatable:: vg_prof_cas(:) 52 real, allocatable:: temp_nudg_prof_cas(:),qv_nudg_prof_cas(:),u_nudg_prof_cas(:),v_nudg_prof_cas(:) 53 real, allocatable:: ht_prof_cas(:) 54 real, allocatable:: hth_prof_cas(:) 55 real, allocatable:: hq_prof_cas(:) 56 real, allocatable:: vt_prof_cas(:) 57 real, allocatable:: vth_prof_cas(:) 58 real, allocatable:: vq_prof_cas(:) 59 real, allocatable:: dt_prof_cas(:) 60 real, allocatable:: dth_prof_cas(:) 61 real, allocatable:: dtrad_prof_cas(:) 62 real, allocatable:: dq_prof_cas(:) 63 real, allocatable:: hu_prof_cas(:) 64 real, allocatable:: hv_prof_cas(:) 65 real, allocatable:: vu_prof_cas(:) 66 real, allocatable:: vv_prof_cas(:) 67 real, allocatable:: du_prof_cas(:) 68 real, allocatable:: dv_prof_cas(:) 69 real, allocatable:: uw_prof_cas(:) 70 real, allocatable:: vw_prof_cas(:) 71 real, allocatable:: q1_prof_cas(:) 72 real, allocatable:: q2_prof_cas(:) 73 74 75 real lat_prof_cas,sens_prof_cas,ts_prof_cas,ps_prof_cas,ustar_prof_cas,tke_prof_cas 76 real o3_cas,orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough,heat_rough,rugos_cas,sand_cas,clay_cas 59 77 60 78 … … 140 158 ENDIF 141 159 160 142 161 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 143 allocate(zzforc_cas(nlev_cas,nt_cas)) 144 allocate(ppforc_cas(nlev_cas,nt_cas)) 145 !profils initiaux 146 allocate(temp0_cas(nlev_cas),theta0_cas(nlev_cas),thetal0_cas(nlev_cas),tke_cas(nlev_cas)) 147 allocate(qt0_cas(nlev_cas),qv0_cas(nlev_cas),ql0_cas(nlev_cas),qi0_cas(nlev_cas),u0_cas(nlev_cas),v0_cas(nlev_cas)) 148 allocate(rt0_cas(nlev_cas),rv0_cas(nlev_cas),rl0_cas(nlev_cas),ri0_cas(nlev_cas),rh0_cas(nlev_cas)) 149 allocate(t_cas(nlev_cas),theta_cas(nlev_cas),thl_cas(nlev_cas),u_cas(nlev_cas),v_cas(nlev_cas)) 150 allocate(w_cas(nlev_cas,nt_cas),omega_cas(nlev_cas,nt_cas)) 162 !profils moyens: 163 allocate(plev_cas(nlev_cas,nt_cas),plevh_cas(nlev_cas+1)) 164 allocate(z_cas(nlev_cas,nt_cas),zh_cas(nlev_cas+1)) 165 allocate(ap_cas(nlev_cas+1),bp_cas(nt_cas+1)) 166 allocate(t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas),qv_cas(nlev_cas,nt_cas),ql_cas(nlev_cas,nt_cas), & 167 qi_cas(nlev_cas,nt_cas),rh_cas(nlev_cas,nt_cas)) 168 allocate(th_cas(nlev_cas,nt_cas),thl_cas(nlev_cas,nt_cas),thv_cas(nlev_cas,nt_cas),rv_cas(nlev_cas,nt_cas)) 169 allocate(u_cas(nlev_cas,nt_cas),v_cas(nlev_cas,nt_cas),vitw_cas(nlev_cas,nt_cas),omega_cas(nlev_cas,nt_cas)) 170 171 !forcing 172 allocate(ht_cas(nlev_cas,nt_cas),vt_cas(nlev_cas,nt_cas),dt_cas(nlev_cas,nt_cas),dtrad_cas(nlev_cas,nt_cas)) 173 allocate(hq_cas(nlev_cas,nt_cas),vq_cas(nlev_cas,nt_cas),dq_cas(nlev_cas,nt_cas)) 174 allocate(hth_cas(nlev_cas,nt_cas),vth_cas(nlev_cas,nt_cas),dth_cas(nlev_cas,nt_cas)) 175 allocate(hr_cas(nlev_cas,nt_cas),vr_cas(nlev_cas,nt_cas),dr_cas(nlev_cas,nt_cas)) 176 allocate(hu_cas(nlev_cas,nt_cas),vu_cas(nlev_cas,nt_cas),du_cas(nlev_cas,nt_cas)) 177 allocate(hv_cas(nlev_cas,nt_cas),vv_cas(nlev_cas,nt_cas),dv_cas(nlev_cas,nt_cas)) 151 178 allocate(ug_cas(nlev_cas,nt_cas),vg_cas(nlev_cas,nt_cas)) 152 !advections et nudging 153 allocate(uadv_cas(nlev_cas,nt_cas),vadv_cas(nlev_cas,nt_cas)) 154 allocate(tadv_cas(nlev_cas,nt_cas),thadv_cas(nlev_cas,nt_cas),thladv_cas(nlev_cas,nt_cas)) 155 allocate(qtadv_cas(nlev_cas,nt_cas),qvadv_cas(nlev_cas,nt_cas)) 156 allocate(rtadv_cas(nlev_cas,nt_cas),rvadv_cas(nlev_cas,nt_cas)) 157 allocate(trad_cas(nlev_cas,nt_cas),thrad_cas(nlev_cas,nt_cas),thlrad_cas(nlev_cas,nt_cas)) 158 allocate(temp_nudg_cas(nlev_cas,nt_cas),th_nudg_cas(nlev_cas,nt_cas),thl_nudg_cas(nlev_cas,nt_cas)) 159 allocate(qv_nudg_cas(nlev_cas,nt_cas),qt_nudg_cas(nlev_cas,nt_cas)) 160 allocate(rv_nudg_cas(nlev_cas,nt_cas),rt_nudg_cas(nlev_cas,nt_cas)) 179 allocate(temp_nudg_cas(nlev_cas,nt_cas),qv_nudg_cas(nlev_cas,nt_cas)) 161 180 allocate(u_nudg_cas(nlev_cas,nt_cas),v_nudg_cas(nlev_cas,nt_cas)) 162 ! flux 163 allocate( lat_cas(nt_cas),sens_cas(nt_cas),ustar_cas(nt_cas))164 allocate(ts_cas(nt_cas),ps_cas(nt_cas),ps_forc_cas(nt_cas)) 165 allocate(wpthetap_cas(nt_cas),wpqvp_cas(nt_cas),wpqtp_cas(nt_cas),wprvp_cas(nt_cas),wprtp_cas(nt_cas)) 181 allocate(lat_cas(nt_cas),sens_cas(nt_cas),ts_cas(nt_cas),ps_cas(nt_cas),ustar_cas(nt_cas),tke_cas(nt_cas)) 182 allocate(uw_cas(nlev_cas,nt_cas),vw_cas(nlev_cas,nt_cas),q1_cas(nlev_cas,nt_cas),q2_cas(nlev_cas,nt_cas)) 183 184 166 185 167 186 !champs interpoles 168 187 allocate(plev_prof_cas(nlev_cas)) 169 188 allocate(t_prof_cas(nlev_cas)) 170 allocate(th _prof_cas(nlev_cas))189 allocate(theta_prof_cas(nlev_cas)) 171 190 allocate(thl_prof_cas(nlev_cas)) 172 allocate(qt_prof_cas(nlev_cas)) 191 allocate(thv_prof_cas(nlev_cas)) 192 allocate(q_prof_cas(nlev_cas)) 173 193 allocate(qv_prof_cas(nlev_cas)) 174 194 allocate(ql_prof_cas(nlev_cas)) 175 195 allocate(qi_prof_cas(nlev_cas)) 176 196 allocate(rh_prof_cas(nlev_cas)) 177 allocate(rt_prof_cas(nlev_cas))178 197 allocate(rv_prof_cas(nlev_cas)) 179 allocate(rl_prof_cas(nlev_cas))180 allocate(ri_prof_cas(nlev_cas))181 198 allocate(u_prof_cas(nlev_cas)) 182 199 allocate(v_prof_cas(nlev_cas)) 183 allocate( w_prof_cas(nlev_cas))200 allocate(vitw_prof_cas(nlev_cas)) 184 201 allocate(omega_prof_cas(nlev_cas)) 185 202 allocate(ug_prof_cas(nlev_cas)) 186 203 allocate(vg_prof_cas(nlev_cas)) 187 allocate(temp_nudg_prof_cas(nlev_cas),th_nudg_prof_cas(nlev_cas),thl_nudg_prof_cas(nlev_cas)) 188 allocate(qt_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas),rt_nudg_prof_cas(nlev_cas),rv_nudg_prof_cas(nlev_cas)) 204 allocate(temp_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas)) 189 205 allocate(u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas)) 206 allocate(ht_prof_cas(nlev_cas)) 207 allocate(hth_prof_cas(nlev_cas)) 208 allocate(hq_prof_cas(nlev_cas)) 209 allocate(hu_prof_cas(nlev_cas)) 210 allocate(hv_prof_cas(nlev_cas)) 211 allocate(vt_prof_cas(nlev_cas)) 212 allocate(vth_prof_cas(nlev_cas)) 213 allocate(vq_prof_cas(nlev_cas)) 214 allocate(vu_prof_cas(nlev_cas)) 215 allocate(vv_prof_cas(nlev_cas)) 216 allocate(dt_prof_cas(nlev_cas)) 217 allocate(dth_prof_cas(nlev_cas)) 218 allocate(dtrad_prof_cas(nlev_cas)) 219 allocate(dq_prof_cas(nlev_cas)) 220 allocate(du_prof_cas(nlev_cas)) 221 allocate(dv_prof_cas(nlev_cas)) 222 allocate(uw_prof_cas(nlev_cas)) 223 allocate(vw_prof_cas(nlev_cas)) 224 allocate(q1_prof_cas(nlev_cas)) 225 allocate(q2_prof_cas(nlev_cas)) 190 226 191 227 print*,'Allocations OK' 192 193 CALL read_SCM(nid,nlev_cas,nt_cas, & 194 & zzs_cas,pp_cas,zzforc_cas,ppforc_cas,temp0_cas,theta0_cas,thetal0_cas,qt0_cas,qv0_cas,ql0_cas,qi0_cas, & 195 & rh0_cas,rt0_cas,rv0_cas,rl0_cas,ri0_cas, & 196 & u0_cas,v0_cas,w_cas,omega_cas,ug_cas,vg_cas,uadv_cas,vadv_cas,tadv_cas,thadv_cas,thladv_cas, & 197 & qvadv_cas,qtadv_cas,rvadv_cas,rtadv_cas, & 198 & temp_nudg_cas,th_nudg_cas,thl_nudg_cas,qv_nudg_cas,qt_nudg_cas,rv_nudg_cas,rt_nudg_cas,u_nudg_cas,v_nudg_cas, & 199 & trad_cas,thrad_cas,thlrad_cas,tke_cas,sens_cas,lat_cas,ts_cas,ps_cas,ps_forc_cas,ustar_cas, & 200 & wpthetap_cas,wpqvp_cas,wpqtp_cas,wprvp_cas,wprtp_cas) 201 228 CALL read_SCM (nid,nlev_cas,nt_cas, & 229 & ap_cas,bp_cas,z_cas,plev_cas,zh_cas,plevh_cas,t_cas,th_cas,thv_cas,thl_cas,qv_cas, & 230 & ql_cas,qi_cas,rh_cas,rv_cas,u_cas,v_cas,vitw_cas,omega_cas,ug_cas,vg_cas, & 231 & temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas, & 232 & du_cas,hu_cas,vu_cas, & 233 & dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas, & 234 & dr_cas,hr_cas,vr_cas,dtrad_cas,sens_cas,lat_cas,ts_cas,ps_cas,ustar_cas,tke_cas, & 235 & uw_cas,vw_cas,q1_cas,q2_cas,orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough,heat_rough, & 236 & o3_cas,rugos_cas,clay_cas,sand_cas) 202 237 print*,'read_SCM cas OK' 203 238 do ii=1,nlev_cas 204 print*,'apres read2_SCM, plev_cas=',ii,p pforc_cas(ii,1)239 print*,'apres read2_SCM, plev_cas=',ii,plev_cas(ii,1) 205 240 !print*,'apres read_SCM, plev_cas=',ii,omega_cas(ii,nt_cas/2+1) 206 241 enddo … … 212 247 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 213 248 SUBROUTINE deallocate2_1D_cases 214 215 deallocate(zzforc_cas) 216 deallocate(ppforc_cas) 217 !profils initiaux 218 deallocate(temp0_cas,theta0_cas,thetal0_cas) 219 deallocate(qt0_cas,qv0_cas,ql0_cas,qi0_cas,u0_cas,v0_cas) 220 deallocate(rt0_cas,rv0_cas,rl0_cas,ri0_cas,rh0_cas,tke_cas) 221 deallocate(t_cas,theta_cas,thl_cas,u_cas,v_cas) 222 deallocate(w_cas,omega_cas) 223 deallocate(ug_cas,vg_cas) 224 !advections et nudging 225 deallocate(uadv_cas,vadv_cas) 226 deallocate(tadv_cas,thadv_cas,thladv_cas) 227 deallocate(qtadv_cas,qvadv_cas) 228 deallocate(rtadv_cas,rvadv_cas) 229 deallocate(trad_cas,thrad_cas,thlrad_cas) 230 deallocate(temp_nudg_cas,th_nudg_cas,thl_nudg_cas) 231 deallocate(qv_nudg_cas,qt_nudg_cas) 232 deallocate(rv_nudg_cas,rt_nudg_cas) 233 deallocate(u_nudg_cas,v_nudg_cas) 234 ! flux 235 deallocate(lat_cas,sens_cas,ustar_cas) 236 deallocate(ts_cas,ps_cas,ps_forc_cas) 237 deallocate(wpthetap_cas,wpqvp_cas,wpqtp_cas,wprvp_cas,wprtp_cas) 249 !profils environnementaux: 250 deallocate(plev_cas,plevh_cas) 251 252 deallocate(z_cas,zh_cas) 253 deallocate(ap_cas,bp_cas) 254 deallocate(t_cas,q_cas,qv_cas,ql_cas,qi_cas,rh_cas) 255 deallocate(th_cas,thl_cas,thv_cas,rv_cas) 256 deallocate(u_cas,v_cas,vitw_cas,omega_cas) 257 258 !forcing 259 deallocate(ht_cas,vt_cas,dt_cas,dtrad_cas) 260 deallocate(hq_cas,vq_cas,dq_cas) 261 deallocate(hth_cas,vth_cas,dth_cas) 262 deallocate(hr_cas,vr_cas,dr_cas) 263 deallocate(hu_cas,vu_cas,du_cas) 264 deallocate(hv_cas,vv_cas,dv_cas) 265 deallocate(ug_cas) 266 deallocate(vg_cas) 267 deallocate(lat_cas,sens_cas,ts_cas,ps_cas,ustar_cas,tke_cas,uw_cas,vw_cas,q1_cas,q2_cas) 238 268 239 269 !champs interpoles 240 deallocate (plev_prof_cas) 241 deallocate (t_prof_cas) 242 deallocate (th_prof_cas) 243 deallocate (thl_prof_cas) 244 deallocate (qt_prof_cas) 245 deallocate (qv_prof_cas) 246 deallocate (ql_prof_cas) 247 deallocate (qi_prof_cas) 248 deallocate (rh_prof_cas) 249 deallocate (rt_prof_cas) 250 deallocate (rv_prof_cas) 251 deallocate (rl_prof_cas) 252 deallocate (ri_prof_cas) 253 deallocate (u_prof_cas) 254 deallocate (v_prof_cas) 255 deallocate (w_prof_cas) 256 deallocate (omega_prof_cas) 257 deallocate (ug_prof_cas) 258 deallocate (vg_prof_cas) 259 deallocate (temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas) 260 deallocate (qt_nudg_prof_cas,qv_nudg_prof_cas,rt_nudg_prof_cas,rv_nudg_prof_cas) 261 deallocate (u_nudg_prof_cas,v_nudg_prof_cas) 270 deallocate(plev_prof_cas) 271 deallocate(t_prof_cas) 272 deallocate(theta_prof_cas) 273 deallocate(thl_prof_cas) 274 deallocate(thv_prof_cas) 275 deallocate(q_prof_cas) 276 deallocate(qv_prof_cas) 277 deallocate(ql_prof_cas) 278 deallocate(qi_prof_cas) 279 deallocate(rh_prof_cas) 280 deallocate(rv_prof_cas) 281 deallocate(u_prof_cas) 282 deallocate(v_prof_cas) 283 deallocate(vitw_prof_cas) 284 deallocate(omega_prof_cas) 285 deallocate(ug_prof_cas) 286 deallocate(vg_prof_cas) 287 deallocate(temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas) 288 deallocate(ht_prof_cas) 289 deallocate(hq_prof_cas) 290 deallocate(hu_prof_cas) 291 deallocate(hv_prof_cas) 292 deallocate(vt_prof_cas) 293 deallocate(vq_prof_cas) 294 deallocate(vu_prof_cas) 295 deallocate(vv_prof_cas) 296 deallocate(dt_prof_cas) 297 deallocate(dtrad_prof_cas) 298 deallocate(dq_prof_cas) 299 deallocate(du_prof_cas) 300 deallocate(dv_prof_cas) 301 deallocate(t_prof_cas) 302 deallocate(u_prof_cas) 303 deallocate(v_prof_cas) 304 deallocate(uw_prof_cas) 305 deallocate(vw_prof_cas) 306 deallocate(q1_prof_cas) 307 deallocate(q2_prof_cas) 262 308 263 309 END SUBROUTINE deallocate2_1D_cases … … 265 311 266 312 !===================================================================== 267 SUBROUTINE read_SCM(nid,nlevel,ntime, & 268 & zzs,pp,zzforc,ppforc,temp0,theta0,thetal0,qt0,qv0,ql0,qi0,rh0,rt0,rv0,rl0,ri0, & 269 & u0,v0,w,omega,ug,vg,uadv,vadv,tadv,thadv,thladv,qvadv,qtadv,rvadv,rtadv, & 270 & temp_nudg,th_nudg,thl_nudg,qv_nudg,qt_nudg,rv_nudg,rt_nudg,u_nudg,v_nudg, & 271 & trad,thrad,thlrad,tke,sens,flat,ts,ps,ps_forc,ustar, & 272 & wpthetap,wpqvp,wpqtp,wprvp,wprtp) 273 274 !program reading forcing of the case study 313 SUBROUTINE read_SCM(nid,nlevel,ntime, & 314 & ap,bp,zz,pp,zzh,pph,temp,theta,thv,thl,qv,ql,qi,rh,rv,u,v,vitw,omega,ug,vg,& 315 & temp_nudg,qv_nudg,u_nudg,v_nudg, & 316 & du,hu,vu,dv,hv,vv,dt,ht,vt,dq,hq,vq, & 317 & dth,hth,vth,dr,hr,vr,dtrad,sens,flat,ts,ps,ustar,tket,uw,vw,q1,q2, & 318 & orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough, & 319 & heat_rough,o3_cas,rugos_cas,clay_cas,sand_cas) 320 321 !program reading forcing of the case study 275 322 implicit none 276 323 #include "netcdf.inc" 277 #include "compar1d _std.h"324 #include "compar1d.h" 278 325 279 326 integer ntime,nlevel,k,t 280 327 281 real zzs,zzforc(nlevel,ntime) 282 real pp,ppforc(nlevel,ntime) 328 real ap(nlevel+1),bp(nlevel+1) 329 real zz(nlevel,ntime),zzh(nlevel+1) 330 real pp(nlevel,ntime),pph(nlevel+1) 283 331 !profils initiaux 284 real temp0(nlevel),theta0(nlevel),thetal0(nlevel),tke(nlevel) 285 real temp(nlevel,ntime),qv(nlevel,ntime),ql(nlevel,ntime),qi(nlevel,ntime),u(nlevel,ntime),v(nlevel,ntime) 286 real qt0(nlevel),qv0(nlevel),ql0(nlevel),qi0(nlevel),u0(nlevel),v0(nlevel) 287 real rt0(nlevel),rv0(nlevel),rl0(nlevel),ri0(nlevel),rh0(nlevel) 288 real w(nlevel,ntime),omega(nlevel,ntime) 332 real temp0(nlevel),qv0(nlevel),ql0(nlevel),qi0(nlevel),u0(nlevel),v0(nlevel),tke0(nlevel) 333 real pp0(nlevel) 334 real temp(nlevel,ntime),qv(nlevel,ntime),ql(nlevel,ntime),qi(nlevel,ntime),rh(nlevel,ntime) 335 real theta(nlevel,ntime),thv(nlevel,ntime),thl(nlevel,ntime),rv(nlevel,ntime) 336 real u(nlevel,ntime),v(nlevel,ntime),tket(ntime) 337 real temp_nudg(nlevel,ntime),qv_nudg(nlevel,ntime),u_nudg(nlevel,ntime),v_nudg(nlevel,ntime) 289 338 real ug(nlevel,ntime),vg(nlevel,ntime) 290 !advections et nudging 291 real uadv(nlevel,ntime),vadv(nlevel,ntime) 292 real tadv(nlevel,ntime),thadv(nlevel,ntime),thladv(nlevel,ntime) 293 real qtadv(nlevel,ntime),qvadv(nlevel,ntime) 294 real rtadv(nlevel,ntime),rvadv(nlevel,ntime) 295 real trad(nlevel,ntime),thrad(nlevel,ntime),thlrad(nlevel,ntime) 296 real temp_nudg(nlevel,ntime),th_nudg(nlevel,ntime),thl_nudg(nlevel,ntime) 297 real qv_nudg(nlevel,ntime),qt_nudg(nlevel,ntime) 298 real rv_nudg(nlevel,ntime),rt_nudg(nlevel,ntime) 299 real u_nudg(nlevel,ntime),v_nudg(nlevel,ntime) 300 ! flux 339 real vitw(nlevel,ntime),omega(nlevel,ntime) 340 real du(nlevel,ntime),hu(nlevel,ntime),vu(nlevel,ntime) 341 real dv(nlevel,ntime),hv(nlevel,ntime),vv(nlevel,ntime) 342 real dt(nlevel,ntime),ht(nlevel,ntime),vt(nlevel,ntime) 343 real dtrad(nlevel,ntime) 344 real dq(nlevel,ntime),hq(nlevel,ntime),vq(nlevel,ntime) 345 real dth(nlevel,ntime),hth(nlevel,ntime),vth(nlevel,ntime),hthl(nlevel,ntime) 346 real dr(nlevel,ntime),hr(nlevel,ntime),vr(nlevel,ntime) 301 347 real flat(ntime),sens(ntime),ustar(ntime) 302 real ts(ntime),ps(ntime),ps_forc(ntime) 303 real wpthetap(ntime),wpqvp(ntime),wpqtp(ntime),wprtp(ntime),wprvp(ntime) 304 real resul(nlevel,ntime),resul1(nlevel),resul2(ntime),resul3 348 real uw(nlevel,ntime),vw(nlevel,ntime),q1(nlevel,ntime),q2(nlevel,ntime) 349 real ts(ntime),ps(ntime) 350 real orog_cas,albedo_cas,emiss_cas,t_skin_cas,q_skin_cas,mom_rough,heat_rough,o3_cas,rugos_cas,clay_cas,sand_cas 351 real apbp(nlevel+1),resul(nlevel,ntime),resul1(nlevel),resul2(ntime),resul3 305 352 306 353 307 354 integer nid, ierr,ierr1,ierr2,rid,i 308 355 integer nbvar3d 309 parameter(nbvar3d= 55)356 parameter(nbvar3d=74) 310 357 integer var3didin(nbvar3d),missing_var(nbvar3d) 311 character*1 4name_var(1:nbvar3d)358 character*13 name_var(1:nbvar3d) 312 359 313 360 314 361 data name_var/ & 315 ! coordonnees pression (n niveaux) profils intiaux #1-#17 316 & 'qt','qv','ql','qi','rt','rv','rl','ri', & 317 & 'rh','temp','theta','thetal','u','v','tke', & 318 & 'height','pressure', & 319 ! coordonnees pression (n niveaux) + temps #18-#44 320 & 'height_forc','pressure_forc','w','omega','ug','vg','u_adv','v_adv', & 321 & 'temp_adv','theta_adv','thetal_adv','qt_adv','qv_adv','rt_adv','rv_adv', & 322 & 'temp_rad','theta_rad','thetal_rad','temp_nudging','theta_nudging','thetal_nudging', & 323 & 'qv_nudging','qt_nudging','rv_nudging','rt_nudging','u_nudging','v_nudging', & 324 ! coordonnees temps #45-#55 325 & 'sfc_sens_flx','sfc_lat_flx','ts','ps','ps_forc','ustar', & 326 & 'wpthetap','wpqvp','wpqtp','wprtp','wprvp'/ 327 ! scalaires #56-57 328 ! Aucune 362 ! coordonnees pression (n+1 niveaux) #4 363 & 'coor_par_a','coor_par_b','height_h','pressure_h',& ! #1-#4 364 ! coordonnees pression (n niveaux) #8 365 &'temp','qv','ql','qi','u','v','tke','pressure',& ! #5-#12 366 ! coordonnees pression + temps #42 367 &'w','omega','ug','vg','uadv','uadvh','uadvv','vadv','vadvh','vadvv','tadv','tadvh','tadvv',& ! #13 - #25 368 &'qvadv','qvadvh','qvadvv','thadv','thadvh','thadvv','thladvh', & ! #26 - #32 369 & 'radv','radvh','radvv','radcool','q1','q2','ustress','vstress', & ! #33 - #40 370 & 'rh','temp_nudging','qv_nudging','u_nudging','v_nudging', & ! #41-45 371 &'height_f','pressure_forc','tempt','theta','thv','thl','qvt','qlt','qit','rv','ut','vt', & ! #46-58 372 ! coordonnees temps #12 373 &'tket','sfc_sens_flx','sfc_lat_flx','ts','ps','ustar',& 374 &'orog','albedo','emiss','t_skin','q_skin','mom_rough','heat_rough',& 375 ! scalaires #4 376 &'o3','rugos','clay','sand'/ 329 377 330 378 !----------------------------------------------------------------------- … … 346 394 !----------------------------------------------------------------------- 347 395 if ( 1 == 1 ) THEN 348 if ( name_var(i) == 'temp_nudging' .and. nint(nudging_temp)==0) stop 'Nudging inconsistency temp' 349 if ( name_var(i) == 'theta_nudging' .and. nint(nudging_theta)==0) stop 'Nudging inconsistency theta' 350 if ( name_var(i) == 'thetal_nudging' .and. nint(nudging_thetal)==0) stop 'Nudging inconsistency thetal' 396 if ( name_var(i) == 'temp_nudaing' .and. nint(nudging_t)==0) stop 'Nudging inconsistency temp' 351 397 if ( name_var(i) == 'qv_nudging' .and. nint(nudging_qv)==0) stop 'Nudging inconsistency qv' 352 if ( name_var(i) == 'qt_nudging' .and. nint(nudging_qt)==0) stop 'Nudging inconsistency qt'353 if ( name_var(i) == 'rv_nudging' .and. nint(nudging_rv)==0) stop 'Nudging inconsistency rv'354 if ( name_var(i) == 'rt_nudging' .and. nint(nudging_rt)==0) stop 'Nudging inconsistency rt'355 398 if ( name_var(i) == 'u_nudging' .and. nint(nudging_u)==0) stop 'Nudging inconsistency u' 356 399 if ( name_var(i) == 'v_nudging' .and. nint(nudging_u)==0) stop 'Nudging inconsistency v' … … 360 403 361 404 !----------------------------------------------------------------------- 405 ! Reading variables 1D (N+1) vertical variables (nlevelp1,lat,lon) 406 !----------------------------------------------------------------------- 407 if(i.LE.4) then 408 #ifdef NC_DOUBLE 409 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),apbp) 410 #else 411 ierr = NF_GET_VAR_REAL(nid,var3didin(i),apbp) 412 #endif 413 print *,'read2_cas(apbp), on a lu ',i,name_var(i) 414 if(ierr/=NF_NOERR) then 415 print *,'Pb a la lecture de cas.nc: ',name_var(i) 416 stop "getvarup" 417 endif 418 419 !----------------------------------------------------------------------- 362 420 ! Reading 1D (N) vertical varialbes (nlevel,lat,lon) 363 421 !----------------------------------------------------------------------- 364 if(i.LE.17) then422 else if(i.gt.4.and.i.LE.12) then 365 423 #ifdef NC_DOUBLE 366 424 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul1) … … 373 431 stop "getvarup" 374 432 endif 375 print*,'Lecture de la variable (nlevel,lat,lon)#i ',i,name_var(i),minval(resul1),maxval(resul1)433 print*,'Lecture de la variable #i ',i,name_var(i),minval(resul1),maxval(resul1) 376 434 377 435 !----------------------------------------------------------------------- … … 379 437 ! TBD : seems to be the same as above. 380 438 !----------------------------------------------------------------------- 381 else if(i.g e.18.and.i.LE.44) then439 else if(i.gt.12.and.i.LE.57) then 382 440 #ifdef NC_DOUBLE 383 441 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul) … … 390 448 stop "getvarup" 391 449 endif 392 print*,'Lecture de la variable (time,nlevel,lat,lon)#i ',i,name_var(i),minval(resul),maxval(resul)450 print*,'Lecture de la variable #i ',i,name_var(i),minval(resul),maxval(resul) 393 451 394 452 !----------------------------------------------------------------------- 395 453 ! Reading 1D time variables (time,lat,lon) 396 454 !----------------------------------------------------------------------- 397 else if (i.gt. 45.and.i.LE.55) then455 else if (i.gt.57.and.i.LE.63) then 398 456 #ifdef NC_DOUBLE 399 457 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul2) … … 406 464 stop "getvarup" 407 465 endif 408 print*,'Lecture de la variable (time,lat,lon) #i ',i,name_var(i),minval(resul2),maxval(resul2) 409 !----------------------------------------------------------------------- 410 ! Reading scalar variables (t0,lat,lon) 466 print*,'Lecture de la variable #i ',i,name_var(i),minval(resul2),maxval(resul2) 467 468 !----------------------------------------------------------------------- 469 ! Reading scalar variables (lat,lon) 411 470 !----------------------------------------------------------------------- 412 471 else … … 421 480 stop "getvarup" 422 481 endif 423 print*,'Lecture de la variable (t0,lat,lon)#i ',i,name_var(i),resul3482 print*,'Lecture de la variable #i ',i,name_var(i),resul3 424 483 endif 425 484 endif … … 429 488 !----------------------------------------------------------------------- 430 489 select case(i) 431 case(1) ; qt0 =resul1 432 case(2) ; qv0 =resul1 433 case(3) ; ql0 =resul1 434 case(4) ; qi0 =resul1 435 case(5) ; rt0 =resul1 436 case(6) ; rv0 =resul1 437 case(7) ; rl0 =resul1 438 case(8) ; ri0 =resul1 439 case(9) ; rh0 =resul1 440 case(10) ; temp0 =resul1 441 case(11) ; theta0 =resul1 442 case(12) ; thetal0 =resul1 443 case(13) ; u0 =resul1 444 case(14) ; v0 =resul1 445 case(15) ; tke =resul1 446 case(16) ; zzforc =resul ! donnees indexees en nlevel,time 447 case(17) ; ppforc =resul 448 case(18) ; w =resul 449 case(19) ; omega =resul 450 case(20) ; ug =resul 451 case(21) ; vg =resul 452 case(22) ; uadv =resul 453 case(23) ; vadv =resul 454 case(24) ; tadv =resul 455 case(25) ; thadv =resul 456 case(26) ; thladv =resul 457 case(27) ; qtadv =resul 458 case(28) ; qvadv =resul 459 case(29) ; rtadv =resul 460 case(30) ; rvadv =resul 461 case(31) ; trad =resul 462 case(32) ; thrad =resul 463 case(33) ; thlrad =resul 464 case(34) ; temp_nudg =resul 465 case(35) ; th_nudg =resul 466 case(36) ; thl_nudg =resul 467 case(37) ; qv_nudg =resul 468 case(38) ; qt_nudg =resul 469 case(39) ; rv_nudg =resul 470 case(40) ; rt_nudg =resul 471 case(41) ; u_nudg =resul 472 case(42) ; v_nudg =resul 473 case(43) ; sens =resul2 ! donnees indexees en time seulement 474 case(44) ; flat =resul2 475 case(45) ; ts =resul2 476 case(46) ; ps =resul2 477 case(47) ; ps_forc =resul2 478 case(48) ; ustar =resul2 479 case(49) ; wpthetap =resul2 480 case(50) ; wpqvp =resul2 481 case(51) ; wpqtp =resul2 482 case(52) ; wprvp =resul2 483 case(53) ; wprtp =resul2 484 case(54) ; zzs =resul3 ! scalaires 485 case(55) ; pp =resul3 490 !case(1) ; ap=apbp ! donnees indexees en nlevel+1 491 ! case(2) ; bp=apbp 492 case(3) ; zzh=apbp 493 case(4) ; pph=apbp 494 case(5) ; temp0=resul1 ! donnees initiales 495 case(6) ; qv0=resul1 496 case(7) ; ql0=resul1 497 case(8) ; qi0=resul1 498 case(9) ; u0=resul1 499 case(10) ; v0=resul1 500 case(11) ; tke0=resul1 501 case(12) ; pp0=resul1 502 case(13) ; vitw=resul ! donnees indexees en nlevel,time 503 case(14) ; omega=resul 504 case(15) ; ug=resul 505 case(16) ; vg=resul 506 case(17) ; du=resul 507 case(18) ; hu=resul 508 case(19) ; vu=resul 509 case(20) ; dv=resul 510 case(21) ; hv=resul 511 case(22) ; vv=resul 512 case(23) ; dt=resul 513 case(24) ; ht=resul 514 case(25) ; vt=resul 515 case(26) ; dq=resul 516 case(27) ; hq=resul 517 case(28) ; vq=resul 518 case(29) ; dth=resul 519 case(30) ; hth=resul 520 case(31) ; vth=resul 521 case(32) ; hthl=resul 522 case(33) ; dr=resul 523 case(34) ; hr=resul 524 case(35) ; vr=resul 525 case(36) ; dtrad=resul 526 case(37) ; q1=resul 527 case(38) ; q2=resul 528 case(39) ; uw=resul 529 case(40) ; vw=resul 530 case(41) ; rh=resul 531 case(42) ; temp_nudg=resul 532 case(43) ; qv_nudg=resul 533 case(44) ; u_nudg=resul 534 case(45) ; v_nudg=resul 535 case(46) ; zz=resul ! donnees en time,nlevel pour profil initial 536 case(47) ; pp=resul 537 case(48) ; temp=resul 538 case(49) ; theta=resul 539 case(50) ; thv=resul 540 case(51) ; thl=resul 541 case(52) ; qv=resul 542 case(53) ; ql=resul 543 case(54) ; qi=resul 544 case(55) ; rv=resul 545 case(56) ; u=resul 546 case(57) ; v=resul 547 case(58) ; tket=resul2 ! donnees indexees en time 548 case(59) ; sens=resul2 549 case(60) ; flat=resul2 550 case(61) ; ts=resul2 551 case(62) ; ps=resul2 552 case(63) ; ustar=resul2 553 case(64) ; orog_cas=resul3 ! constantes 554 case(65) ; albedo_cas=resul3 555 case(66) ; emiss_cas=resul3 556 case(67) ; t_skin_cas=resul3 557 case(68) ; q_skin_cas=resul3 558 case(69) ; mom_rough=resul3 559 case(70) ; heat_rough=resul3 560 case(71) ; o3_cas=resul3 561 case(72) ; rugos_cas=resul3 562 case(73) ; clay_cas=resul3 563 case(74) ; sand_cas=resul3 486 564 end select 487 565 resul=0. … … 490 568 resul3=0. 491 569 enddo 492 !print*,'Lecture de la variable APRES ,sens ',minval(sens),maxval(sens)493 !print*,'Lecture de la variable APRES ,flat ',minval(flat),maxval(flat)570 print*,'Lecture de la variable APRES ,sens ',minval(sens),maxval(sens) 571 print*,'Lecture de la variable APRES ,flat ',minval(flat),maxval(flat) 494 572 495 573 !CR:ATTENTION EN ATTENTE DE REGLER LA QUESTION DU PAS DE TEMPS INITIAL 496 !do t=1,ntime497 !do k=1,nlevel498 !temp(k,t)=temp0(k)499 !qv(k,t)=qv0(k)500 !ql(k,t)=ql0(k)501 !qi(k,t)=qi0(k)502 !u(k,t)=u0(k)503 !v(k,t)=v0(k)504 !!tke(k,t)=tke0(k)505 !enddo506 !enddo574 do t=1,ntime 575 do k=1,nlevel 576 temp(k,t)=temp0(k) 577 qv(k,t)=qv0(k) 578 ql(k,t)=ql0(k) 579 qi(k,t)=qi0(k) 580 u(k,t)=u0(k) 581 v(k,t)=v0(k) 582 !tke(k,t)=tke0(k) 583 enddo 584 enddo 507 585 !!!! TRAVAIL : EN FONCTION DES DECISIONS SUR LA SPECIFICATION DE W 508 586 !!!omega=-vitw*pres*rg/(rd*temp) … … 517 595 !********************************************************************************************** 518 596 SUBROUTINE interp_case_time_std(day,day1,annee_ref & 519 & ,nt_cas,nlev_cas & 520 & ,ts_cas,ps_cas,ps_forc_cas,plev_cas,ppforc_cas,t_cas,th_cas,thl_cas & 521 & ,qt_cas,qv_cas,ql_cas,qi_cas & 522 & ,rt_cas,rv_cas,rl_cas,ri_cas,rh_cas & 523 & ,u_cas,v_cas,w_cas,omega_cas,ug_cas,vg_cas & 524 & ,temp_nudg_cas,th_nudg_cas,thl_nudg_cas,qt_nudg_cas,qv_nudg_cas & 525 & ,rt_nudg_cas,rv_nudg_cas,u_nudg_cas,v_nudg_cas & 526 & ,uadv_cas,vadv_cas,tadv_cas,thadv_cas,thladv_cas & 527 & ,qtadv_cas,qvadv_cas,rtadv_cas,rvadv_cas & 528 & ,trad_cas,thrad_cas,thlrad_cas & 529 & ,tke_cas,lat_cas,sens_cas,ustar_cas & 530 & ,wpthetap_cas,wpqtp_cas,wpqvp_cas,wprtp_cas,wprvp_cas & 597 ! & ,year_cas,day_cas,nt_cas,pdt_forc,nlev_cas & 598 & ,nt_cas,nlev_cas & 599 & ,ts_cas,ps_cas,plev_cas,t_cas,theta_cas,thv_cas,thl_cas & 600 & ,qv_cas,ql_cas,qi_cas,u_cas,v_cas & 601 & ,ug_cas,vg_cas,temp_nudg_cas,qv_nudg_cas,u_nudg_cas,v_nudg_cas & 602 & ,vitw_cas,omega_cas,du_cas,hu_cas,vu_cas & 603 & ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas & 604 & ,dq_cas,hq_cas,vq_cas,dth_cas,hth_cas,vth_cas & 605 & ,lat_cas,sens_cas,ustar_cas & 606 & ,uw_cas,vw_cas,q1_cas,q2_cas,tke_cas & 531 607 ! 532 & ,ts_prof_cas,ps_prof_cas,ps_forc_prof_cas,plev_prof_cas,pforc_prof_cas& 533 & ,t_prof_cas,th_prof_cas,thl_prof_cas & 534 & ,qt_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 535 & ,rt_prof_cas,rv_prof_cas,rl_prof_cas,ri_prof_cas,rh_prof_cas & 536 & ,u_prof_cas,v_prof_cas,w_prof_cas,omega_prof_cas & 537 & ,ug_prof_cas,vg_prof_cas & 538 & ,temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas & 539 & ,qt_nudg_prof_cas,qv_nudg_prof_cas & 540 & ,rt_nudg_prof_cas,rv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 541 & ,uadv_prof_cas,vadv_prof_cas,tadv_prof_cas,thadv_prof_cas,thladv_prof_cas& 542 & ,qtadv_prof_cas,qvadv_prof_cas,rtadv_prof_cas,rvadv_prof_cas & 543 & ,trad_prof_cas,thrad_prof_cas,thlrad_prof_cas & 544 & ,tke_prof_cas,lat_prof_cas,sens_prof_cas,ustar_prof_cas & 545 & ,wpthetap_prof_cas,wpqtp_prof_cas,wpqvp_prof_cas,wprtp_prof_cas,wprvp_prof_cas) 608 & ,ts_prof_cas,ps_prof_cas,plev_prof_cas,t_prof_cas,theta_prof_cas & 609 & ,thv_prof_cas,thl_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 610 & ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas & 611 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 612 & ,vitw_prof_cas,omega_prof_cas,du_prof_cas,hu_prof_cas,vu_prof_cas & 613 & ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas & 614 & ,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas & 615 & ,hq_prof_cas,vq_prof_cas,dth_prof_cas,hth_prof_cas,vth_prof_cas & 616 & ,lat_prof_cas,sens_prof_cas & 617 & ,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas,tke_prof_cas) 546 618 547 619 … … 557 629 !--------------------------------------------------------------------------------------- 558 630 559 #include "compar1d _std.h"631 #include "compar1d.h" 560 632 #include "date_cas.h" 561 633 … … 564 636 integer nt_cas,nlev_cas 565 637 real day, day1,day_cas 566 real ts_cas(nt_cas),ps_cas(nt_cas),ps_forc_cas(nt_cas) 567 real plev_cas(nlev_cas,nt_cas),ppforc_cas(nt_cas) 568 real t_cas(nlev_cas,nt_cas),th_cas(nlev_cas,nt_cas),thl_cas(nlev_cas,nt_cas) 569 real qt_cas(nlev_cas,nt_cas),qv_cas(nlev_cas,nt_cas),ql_cas(nlev_cas,nt_cas),qi_cas(nlev_cas,nt_cas) 570 real rt_cas(nlev_cas,nt_cas),rv_cas(nlev_cas,nt_cas),rl_cas(nlev_cas,nt_cas),ri_cas(nlev_cas,nt_cas) 571 real rh_cas(nlev_cas,nt_cas),u_cas(nlev_cas,nt_cas),v_cas(nlev_cas,nt_cas) 572 real w_cas(nlev_cas,nt_cas),omega_cas(nlev_cas,nt_cas) 638 real ts_cas(nt_cas),ps_cas(nt_cas) 639 real plev_cas(nlev_cas,nt_cas) 640 real t_cas(nlev_cas,nt_cas),theta_cas(nlev_cas,nt_cas),thv_cas(nlev_cas,nt_cas),thl_cas(nlev_cas,nt_cas) 641 real qv_cas(nlev_cas,nt_cas),ql_cas(nlev_cas,nt_cas),qi_cas(nlev_cas,nt_cas) 642 real u_cas(nlev_cas,nt_cas),v_cas(nlev_cas,nt_cas) 573 643 real ug_cas(nlev_cas,nt_cas),vg_cas(nlev_cas,nt_cas) 574 real temp_nudg_cas(nlev_cas,nt_cas),th_nudg_cas(nlev_cas,nt_cas),thl_nudg_cas(nlev_cas,nt_cas) 575 real qt_nudg_cas(nlev_cas,nt_cas),qv_nudg_cas(nlev_cas,nt_cas) 576 real rt_nudg_cas(nlev_cas,nt_cas),rv_nudg_cas(nlev_cas,nt_cas) 644 real temp_nudg_cas(nlev_cas,nt_cas),qv_nudg_cas(nlev_cas,nt_cas) 577 645 real u_nudg_cas(nlev_cas,nt_cas),v_nudg_cas(nlev_cas,nt_cas) 578 real uadv_cas(nlev_cas,nt_cas),vadv_cas(nlev_cas,nt_cas) 579 real tadv_cas(nlev_cas,nt_cas),thadv_cas(nlev_cas,nt_cas),thladv_cas(nlev_cas,nt_cas) 580 real qtadv_cas(nlev_cas,nt_cas),qvadv_cas(nlev_cas,nt_cas) 581 real rtadv_cas(nlev_cas,nt_cas),rvadv_cas(nlev_cas,nt_cas) 582 real trad_cas(nlev_cas,nt_cas),thrad_cas(nlev_cas,nt_cas),thlrad_cas(nlev_cas,nt_cas) 646 647 real vitw_cas(nlev_cas,nt_cas),omega_cas(nlev_cas,nt_cas) 648 real du_cas(nlev_cas,nt_cas),hu_cas(nlev_cas,nt_cas),vu_cas(nlev_cas,nt_cas) 649 real dv_cas(nlev_cas,nt_cas),hv_cas(nlev_cas,nt_cas),vv_cas(nlev_cas,nt_cas) 650 real dt_cas(nlev_cas,nt_cas),ht_cas(nlev_cas,nt_cas),vt_cas(nlev_cas,nt_cas) 651 real dth_cas(nlev_cas,nt_cas),hth_cas(nlev_cas,nt_cas),vth_cas(nlev_cas,nt_cas) 652 real dtrad_cas(nlev_cas,nt_cas) 653 real dq_cas(nlev_cas,nt_cas),hq_cas(nlev_cas,nt_cas),vq_cas(nlev_cas,nt_cas) 583 654 real lat_cas(nt_cas),sens_cas(nt_cas),tke_cas(nt_cas) 584 real wpthetap_cas(nt_cas),wpqtp_cas(nt_cas),wpqvp_cas(nt_cas) 585 real ustar_cas(nt_cas),wprtp_cas(nt_cas),wprvp_cas(nt_cas) 586 587 ! output: 588 real plev_prof_cas(nlev_cas),pforc_prof_cas(nt_cas) 589 real t_prof_cas(nlev_cas),th_prof_cas(nlev_cas),thl_prof_cas(nlev_cas) 590 real qt_prof_cas(nlev_cas),qv_prof_cas(nlev_cas),ql_prof_cas(nlev_cas),qi_prof_cas(nlev_cas) 591 real rt_prof_cas(nlev_cas),rv_prof_cas(nlev_cas),rl_prof_cas(nlev_cas),ri_prof_cas(nlev_cas) 592 real rh_prof_cas(nlev_cas),u_prof_cas(nlev_cas),v_prof_cas(nlev_cas) 593 real w_prof_cas(nlev_cas),omega_prof_cas(nlev_cas) 655 real ustar_cas(nt_cas),uw_cas(nlev_cas,nt_cas),vw_cas(nlev_cas,nt_cas) 656 real q1_cas(nlev_cas,nt_cas),q2_cas(nlev_cas,nt_cas) 657 658 ! outputs: 659 real plev_prof_cas(nlev_cas) 660 real t_prof_cas(nlev_cas),theta_prof_cas(nlev_cas),thl_prof_cas(nlev_cas),thv_prof_cas(nlev_cas) 661 real qv_prof_cas(nlev_cas),ql_prof_cas(nlev_cas),qi_prof_cas(nlev_cas) 662 real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas) 594 663 real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas) 595 real temp_nudg_prof_cas(nlev_cas),th_nudg_prof_cas(nlev_cas),thl_nudg_prof_cas(nlev_cas) 596 real qt_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas) 597 real rt_nudg_prof_cas(nlev_cas),rv_nudg_prof_cas(nlev_cas) 664 real temp_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas) 598 665 real u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas) 599 real uadv_prof_cas(nlev_cas),vadv_prof_cas(nlev_cas) 600 real tadv_prof_cas(nlev_cas),thadv_prof_cas(nlev_cas),thladv_prof_cas(nlev_cas)601 real qtadv_prof_cas(nlev_cas),qvadv_prof_cas(nlev_cas)602 real rtadv_prof_cas(nlev_cas),rvadv_prof_cas(nlev_cas)603 real trad_prof_cas(nlev_cas),thrad_prof_cas(nlev_cas),thlrad_prof_cas(nlev_cas)604 real lat_prof_cas,sens_prof_cas,tke_prof_cas605 real ts_prof_cas,ps_prof_cas,ps_forc_prof_cas606 real wpthetap_prof_cas,wpqtp_prof_cas,wpqvp_prof_cas607 real ustar_prof_cas,wprtp_prof_cas,wprvp_prof_cas608 666 667 real vitw_prof_cas(nlev_cas),omega_prof_cas(nlev_cas) 668 real du_prof_cas(nlev_cas),hu_prof_cas(nlev_cas),vu_prof_cas(nlev_cas) 669 real dv_prof_cas(nlev_cas),hv_prof_cas(nlev_cas),vv_prof_cas(nlev_cas) 670 real dt_prof_cas(nlev_cas),ht_prof_cas(nlev_cas),vt_prof_cas(nlev_cas) 671 real dth_prof_cas(nlev_cas),hth_prof_cas(nlev_cas),vth_prof_cas(nlev_cas) 672 real dtrad_prof_cas(nlev_cas) 673 real dq_prof_cas(nlev_cas),hq_prof_cas(nlev_cas),vq_prof_cas(nlev_cas) 674 real lat_prof_cas,sens_prof_cas,tke_prof_cas,ts_prof_cas,ps_prof_cas,ustar_prof_cas 675 real uw_prof_cas(nlev_cas),vw_prof_cas(nlev_cas),q1_prof_cas(nlev_cas),q2_prof_cas(nlev_cas) 609 676 ! local: 610 677 integer it_cas1, it_cas2,k 611 678 real timeit,time_cas1,time_cas2,frac 612 679 680 613 681 print*,'Check time',day1,day_ju_ini_cas,day_deb+1,pdt_cas 614 682 ! do k=1,nlev_cas 615 ! print*,'debut de interp _case_time, plev_cas=',k,plev_cas(k,1)683 ! print*,'debut de interp2_case_time, plev_cas=',k,plev_cas(k,1) 616 684 ! enddo 617 685 … … 694 762 ps_prof_cas = ps_cas(it_cas2) & 695 763 & -frac*(ps_cas(it_cas2)-ps_cas(it_cas1)) 696 ps_forc_prof_cas = ps_forc_cas(it_cas2) &697 & -frac*(ps_forc_cas(it_cas2)-ps_forc_cas(it_cas1))698 764 ustar_prof_cas = ustar_cas(it_cas2) & 699 765 & -frac*(ustar_cas(it_cas2)-ustar_cas(it_cas1)) 700 wpthetap_prof_cas = wpthetap_cas(it_cas2) &701 & -frac*(wpthetap_cas(it_cas2)-wpthetap_cas(it_cas1))702 wpqtp_prof_cas = wpqtp_cas(it_cas2) &703 & -frac*(wpqtp_cas(it_cas2)-wpqtp_cas(it_cas1))704 wpqvp_prof_cas = wpqvp_cas(it_cas2) &705 & -frac*(wpqvp_cas(it_cas2)-wpqvp_cas(it_cas1))706 wprtp_prof_cas = wprtp_cas(it_cas2) &707 & -frac*(wprtp_cas(it_cas2)-wprtp_cas(it_cas1))708 wprvp_prof_cas = wprvp_cas(it_cas2) &709 & -frac*(wprvp_cas(it_cas2)-wprvp_cas(it_cas1))710 766 711 767 do k=1,nlev_cas … … 715 771 & -frac*(t_cas(k,it_cas2)-t_cas(k,it_cas1)) 716 772 !print *,'k,frac,plev_cas1,plev_cas2=',k,frac,plev_cas(k,it_cas1),plev_cas(k,it_cas2) 717 th_prof_cas(k) = th_cas(k,it_cas2) & 718 & -frac*(th_cas(k,it_cas2)-th_cas(k,it_cas1)) 773 theta_prof_cas(k) = theta_cas(k,it_cas2) & 774 & -frac*(theta_cas(k,it_cas2)-theta_cas(k,it_cas1)) 775 thv_prof_cas(k) = thv_cas(k,it_cas2) & 776 & -frac*(thv_cas(k,it_cas2)-thv_cas(k,it_cas1)) 719 777 thl_prof_cas(k) = thl_cas(k,it_cas2) & 720 778 & -frac*(thl_cas(k,it_cas2)-thl_cas(k,it_cas1)) 721 qt_prof_cas(k) = qt_cas(k,it_cas2) &722 & -frac*(qt_cas(k,it_cas2)-qt_cas(k,it_cas1))723 779 qv_prof_cas(k) = qv_cas(k,it_cas2) & 724 780 & -frac*(qv_cas(k,it_cas2)-qv_cas(k,it_cas1)) … … 727 783 qi_prof_cas(k) = qi_cas(k,it_cas2) & 728 784 & -frac*(qi_cas(k,it_cas2)-qi_cas(k,it_cas1)) 729 rt_prof_cas(k) = rt_cas(k,it_cas2) &730 & -frac*(rt_cas(k,it_cas2)-rt_cas(k,it_cas1))731 rv_prof_cas(k) = rv_cas(k,it_cas2) &732 & -frac*(rv_cas(k,it_cas2)-rv_cas(k,it_cas1))733 rl_prof_cas(k) = rl_cas(k,it_cas2) &734 & -frac*(rl_cas(k,it_cas2)-rl_cas(k,it_cas1))735 ri_prof_cas(k) = ri_cas(k,it_cas2) &736 & -frac*(ri_cas(k,it_cas2)-ri_cas(k,it_cas1))737 rh_prof_cas(k) = rh_cas(k,it_cas2) &738 & -frac*(rh_cas(k,it_cas2)-rh_cas(k,it_cas1))739 785 u_prof_cas(k) = u_cas(k,it_cas2) & 740 786 & -frac*(u_cas(k,it_cas2)-u_cas(k,it_cas1)) 741 787 v_prof_cas(k) = v_cas(k,it_cas2) & 742 788 & -frac*(v_cas(k,it_cas2)-v_cas(k,it_cas1)) 743 w_prof_cas(k) = w_cas(k,it_cas2) &744 & -frac*(w_cas(k,it_cas2)-w_cas(k,it_cas1))745 omega_prof_cas(k) = omega_cas(k,it_cas2) &746 & -frac*(omega_cas(k,it_cas2)-omega_cas(k,it_cas1))747 789 ug_prof_cas(k) = ug_cas(k,it_cas2) & 748 790 & -frac*(ug_cas(k,it_cas2)-ug_cas(k,it_cas1)) … … 751 793 temp_nudg_prof_cas(k) = temp_nudg_cas(k,it_cas2) & 752 794 & -frac*(temp_nudg_cas(k,it_cas2)-temp_nudg_cas(k,it_cas1)) 753 th_nudg_prof_cas(k) = th_nudg_cas(k,it_cas2) &754 & -frac*(th_nudg_cas(k,it_cas2)-th_nudg_cas(k,it_cas1))755 thl_nudg_prof_cas(k) = thl_nudg_cas(k,it_cas2) &756 & -frac*(thl_nudg_cas(k,it_cas2)-thl_nudg_cas(k,it_cas1))757 qt_nudg_prof_cas(k) = qt_nudg_cas(k,it_cas2) &758 & -frac*(qt_nudg_cas(k,it_cas2)-qt_nudg_cas(k,it_cas1))759 795 qv_nudg_prof_cas(k) = qv_nudg_cas(k,it_cas2) & 760 796 & -frac*(qv_nudg_cas(k,it_cas2)-qv_nudg_cas(k,it_cas1)) 761 rt_nudg_prof_cas(k) = rt_nudg_cas(k,it_cas2) &762 & -frac*(rt_nudg_cas(k,it_cas2)-rt_nudg_cas(k,it_cas1))763 rv_nudg_prof_cas(k) = rv_nudg_cas(k,it_cas2) &764 & -frac*(rv_nudg_cas(k,it_cas2)-rv_nudg_cas(k,it_cas1))765 797 u_nudg_prof_cas(k) = u_nudg_cas(k,it_cas2) & 766 798 & -frac*(u_nudg_cas(k,it_cas2)-u_nudg_cas(k,it_cas1)) 767 799 v_nudg_prof_cas(k) = v_nudg_cas(k,it_cas2) & 768 800 & -frac*(v_nudg_cas(k,it_cas2)-v_nudg_cas(k,it_cas1)) 769 uadv_prof_cas(k) = uadv_cas(k,it_cas2) & 770 & -frac*(uadv_cas(k,it_cas2)-uadv_cas(k,it_cas1)) 771 vadv_prof_cas(k) = vadv_cas(k,it_cas2) & 772 & -frac*(vadv_cas(k,it_cas2)-vadv_cas(k,it_cas1)) 773 tadv_prof_cas(k) = tadv_cas(k,it_cas2) & 774 & -frac*(tadv_cas(k,it_cas2)-tadv_cas(k,it_cas1)) 775 thadv_prof_cas(k) = thadv_cas(k,it_cas2) & 776 & -frac*(thadv_cas(k,it_cas2)-thadv_cas(k,it_cas1)) 777 thladv_prof_cas(k) = thladv_cas(k,it_cas2) & 778 & -frac*(thladv_cas(k,it_cas2)-thladv_cas(k,it_cas1)) 779 qtadv_prof_cas(k) = qtadv_cas(k,it_cas2) & 780 & -frac*(qtadv_cas(k,it_cas2)-qtadv_cas(k,it_cas1)) 781 qvadv_prof_cas(k) = qvadv_cas(k,it_cas2) & 782 & -frac*(qvadv_cas(k,it_cas2)-qvadv_cas(k,it_cas1)) 783 rtadv_prof_cas(k) = rtadv_cas(k,it_cas2) & 784 & -frac*(rtadv_cas(k,it_cas2)-rtadv_cas(k,it_cas1)) 785 rvadv_prof_cas(k) = rvadv_cas(k,it_cas2) & 786 & -frac*(rvadv_cas(k,it_cas2)-rvadv_cas(k,it_cas1)) 787 trad_prof_cas(k) = trad_cas(k,it_cas2) & 788 & -frac*(trad_cas(k,it_cas2)-trad_cas(k,it_cas1)) 789 thrad_prof_cas(k) = thrad_cas(k,it_cas2) & 790 & -frac*(thrad_cas(k,it_cas2)-thrad_cas(k,it_cas1)) 791 thlrad_prof_cas(k) = thlrad_cas(k,it_cas2) & 792 & -frac*(thlrad_cas(k,it_cas2)-thlrad_cas(k,it_cas1)) 801 vitw_prof_cas(k) = vitw_cas(k,it_cas2) & 802 & -frac*(vitw_cas(k,it_cas2)-vitw_cas(k,it_cas1)) 803 omega_prof_cas(k) = omega_cas(k,it_cas2) & 804 & -frac*(omega_cas(k,it_cas2)-omega_cas(k,it_cas1)) 805 du_prof_cas(k) = du_cas(k,it_cas2) & 806 & -frac*(du_cas(k,it_cas2)-du_cas(k,it_cas1)) 807 hu_prof_cas(k) = hu_cas(k,it_cas2) & 808 & -frac*(hu_cas(k,it_cas2)-hu_cas(k,it_cas1)) 809 vu_prof_cas(k) = vu_cas(k,it_cas2) & 810 & -frac*(vu_cas(k,it_cas2)-vu_cas(k,it_cas1)) 811 dv_prof_cas(k) = dv_cas(k,it_cas2) & 812 & -frac*(dv_cas(k,it_cas2)-dv_cas(k,it_cas1)) 813 hv_prof_cas(k) = hv_cas(k,it_cas2) & 814 & -frac*(hv_cas(k,it_cas2)-hv_cas(k,it_cas1)) 815 vv_prof_cas(k) = vv_cas(k,it_cas2) & 816 & -frac*(vv_cas(k,it_cas2)-vv_cas(k,it_cas1)) 817 dt_prof_cas(k) = dt_cas(k,it_cas2) & 818 & -frac*(dt_cas(k,it_cas2)-dt_cas(k,it_cas1)) 819 ht_prof_cas(k) = ht_cas(k,it_cas2) & 820 & -frac*(ht_cas(k,it_cas2)-ht_cas(k,it_cas1)) 821 vt_prof_cas(k) = vt_cas(k,it_cas2) & 822 & -frac*(vt_cas(k,it_cas2)-vt_cas(k,it_cas1)) 823 dth_prof_cas(k) = dth_cas(k,it_cas2) & 824 & -frac*(dth_cas(k,it_cas2)-dth_cas(k,it_cas1)) 825 hth_prof_cas(k) = hth_cas(k,it_cas2) & 826 & -frac*(hth_cas(k,it_cas2)-hth_cas(k,it_cas1)) 827 vth_prof_cas(k) = vth_cas(k,it_cas2) & 828 & -frac*(vth_cas(k,it_cas2)-vth_cas(k,it_cas1)) 829 dtrad_prof_cas(k) = dtrad_cas(k,it_cas2) & 830 & -frac*(dtrad_cas(k,it_cas2)-dtrad_cas(k,it_cas1)) 831 dq_prof_cas(k) = dq_cas(k,it_cas2) & 832 & -frac*(dq_cas(k,it_cas2)-dq_cas(k,it_cas1)) 833 hq_prof_cas(k) = hq_cas(k,it_cas2) & 834 & -frac*(hq_cas(k,it_cas2)-hq_cas(k,it_cas1)) 835 vq_prof_cas(k) = vq_cas(k,it_cas2) & 836 & -frac*(vq_cas(k,it_cas2)-vq_cas(k,it_cas1)) 837 uw_prof_cas(k) = uw_cas(k,it_cas2) & 838 & -frac*(uw_cas(k,it_cas2)-uw_cas(k,it_cas1)) 839 vw_prof_cas(k) = vw_cas(k,it_cas2) & 840 & -frac*(vw_cas(k,it_cas2)-vw_cas(k,it_cas1)) 841 q1_prof_cas(k) = q1_cas(k,it_cas2) & 842 & -frac*(q1_cas(k,it_cas2)-q1_cas(k,it_cas1)) 843 q2_prof_cas(k) = q2_cas(k,it_cas2) & 844 & -frac*(q2_cas(k,it_cas2)-q2_cas(k,it_cas1)) 793 845 enddo 794 846 … … 798 850 !********************************************************************************************** 799 851 !===================================================================== 800 SUBROUTINE interp_case_vertical_std(nlev_cas & 801 & ,plev_prof_cas,t_prof_cas,th_prof_cas,thl_prof_cas & 802 & ,qt_prof_cas,qv_prof_cas,ql_prof_cas,qi_prof_cas & 803 & ,rt_prof_cas,rv_prof_cas,rl_prof_cas,ri_prof_cas,rh_prof_cas & 804 & ,u_prof_cas,v_prof_cas,w_prof_cas,omega_prof_cas & 852 SUBROUTINE interp2_case_vertical_std(play,nlev_cas,plev_prof_cas & 853 & ,t_prof_cas,th_prof_cas,thv_prof_cas,thl_prof_cas & 854 & ,qv_prof_cas,ql_prof_cas,qi_prof_cas,u_prof_cas,v_prof_cas & 805 855 & ,ug_prof_cas,vg_prof_cas & 806 & ,temp_nudg_prof_cas,th_nudg_prof_cas,thl_nudg_prof_cas & 807 & ,qt_nudg_prof_cas,qv_nudg_prof_cas & 808 & ,rt_nudg_prof_cas,rv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 809 & ,uadv_prof_cas,vadv_prof_cas,tadv_prof_cas,thadv_prof_cas,thladv_prof_cas & 810 & ,qtadv_prof_cas,qvadv_prof_cas,rtadv_prof_cas,rvadv_prof_cas & 811 & ,trad_prof_cas,thrad_prof_cas,thlrad_prof_cas & 856 & ,temp_nudg_prof_cas,qv_nudg_prof_cas,u_nudg_prof_cas,v_nudg_prof_cas & 857 & ,vitw_prof_cas,omega_prof_cas & 858 & ,du_prof_cas,hu_prof_cas,vu_prof_cas,dv_prof_cas,hv_prof_cas,vv_prof_cas & 859 & ,dt_prof_cas,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas,hq_prof_cas,vq_prof_cas & 860 & ,dth_prof_cas,hth_prof_cas,vth_prof_cas & 812 861 ! 813 & ,plev_mod_cas,t_mod_cas,th_mod_cas,thl_mod_cas & 814 & ,qt_mod_cas,qv_mod_cas,ql_mod_cas,qi_mod_cas & 815 & ,rt_mod_cas,rv_mod_cas,rl_mod_cas,ri_mod_cas,rh_mod_cas & 816 & ,u_mod_cas,v_mod_cas,w_mod_cas,omega_mod_cas & 862 & ,t_mod_cas,theta_mod_cas,thv_mod_cas,thl_mod_cas & 863 & ,qv_mod_cas,ql_mod_cas,qi_mod_cas,u_mod_cas,v_mod_cas & 817 864 & ,ug_mod_cas,vg_mod_cas & 818 & ,temp_nudg_mod_cas,th_nudg_mod_cas,thl_nudg_mod_cas & 819 & ,qt_nudg_mod_cas,qv_nudg_mod_cas & 820 & ,rt_nudg_mod_cas,rv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 821 & ,uadv_mod_cas,vadv_mod_cas,tadv_mod_cas,thadv_mod_cas,thladv_mod_cas & 822 & ,qtadv_mod_cas,qvadv_mod_cas,rtadv_mod_cas,rvadv_mod_cas & 823 & ,trad_mod_cas,thrad_mod_cas,thlrad_mod_cas) 865 & ,temp_nudg_mod_cas,qv_nudg_mod_cas,u_nudg_mod_cas,v_nudg_mod_cas & 866 & ,w_mod_cas,omega_mod_cas & 867 & ,du_mod_cas,hu_mod_cas,vu_mod_cas,dv_mod_cas,hv_mod_cas,vv_mod_cas & 868 & ,dt_mod_cas,ht_mod_cas,vt_mod_cas,dtrad_mod_cas,dq_mod_cas,hq_mod_cas,vq_mod_cas & 869 & ,dth_mod_cas,hth_mod_cas,vth_mod_cas,mxcalc) 824 870 825 871 implicit none … … 840 886 ! real ht_prof(nlevmax),vt_prof(nlevmax) 841 887 ! real hq_prof(nlevmax),vq_prof(nlevmax) 842 real plev_prof_cas(nlev_cas)843 real t_prof_cas(nlev_cas),th_prof_cas(nlev_cas),thl_prof_cas(nlev_cas)844 real qt_prof_cas(nlev_cas),qv_prof_cas(nlev_cas),ql_prof_cas(nlev_cas),qi_prof_cas(nlev_cas)845 real rt_prof_cas(nlev_cas),rv_prof_cas(nlev_cas),rl_prof_cas(nlev_cas),ri_prof_cas(nlev_cas)846 real rh_prof_cas(nlev_cas)847 real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas),w_prof_cas(nlev_cas),omega_prof_cas(nlev_cas)848 real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas)849 real temp_nudg_prof_cas(nlev_cas),th_nudg_prof_cas(nlev_cas),thl_nudg_prof_cas(nlev_cas)850 real qt_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas)851 real rt_nudg_prof_cas(nlev_cas),rv_nudg_prof_cas(nlev_cas)852 real u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas)853 real uadv_prof_cas(nlev_cas),vadv_prof_cas(nlev_cas)854 real tadv_prof_cas(nlev_cas),thadv_prof_cas(nlev_cas),thladv_prof_cas(nlev_cas)855 real qtadv_prof_cas(nlev_cas),qvadv_prof_cas(nlev_cas)856 real rtadv_prof_cas(nlev_cas),rvadv_prof_cas(nlev_cas)857 real trad_prof_cas(nlev_cas),thrad_prof_cas(nlev_cas),thlrad_prof_cas(nlev_cas)858 888 859 real play(llm),plev_mod_cas(llm),t_mod_cas(llm),th_mod_cas(llm),thl_mod_cas(llm) 860 real qt_mod_cas(llm),qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm) 861 real rt_mod_cas(llm),rv_mod_cas(llm),rl_mod_cas(llm),ri_mod_cas(llm) 862 real rh_mod_cas(llm) 863 real u_mod_cas(llm),v_mod_cas(llm),w_mod_cas(llm),omega_mod_cas(llm) 864 real ug_mod_cas(llm),vg_mod_cas(llm) 865 real temp_nudg_mod_cas(llm),th_nudg_mod_cas(llm),thl_nudg_mod_cas(llm) 866 real qt_nudg_mod_cas(llm),qv_nudg_mod_cas(llm) 867 real rt_nudg_mod_cas(llm),rv_nudg_mod_cas(llm),u_nudg_mod_cas(llm),v_nudg_mod_cas(llm) 868 real uadv_mod_cas(llm),vadv_mod_cas(llm) 869 real tadv_mod_cas(llm),thadv_mod_cas(llm),thladv_mod_cas(llm) 870 real qtadv_mod_cas(llm),qvadv_mod_cas(llm) 871 real rtadv_mod_cas(llm),rvadv_mod_cas(llm) 872 real trad_mod_cas(llm),thrad_mod_cas(llm),thlrad_mod_cas(llm) 889 real play(llm), plev_prof_cas(nlev_cas) 890 real t_prof_cas(nlev_cas),th_prof_cas(nlev_cas),thv_prof_cas(nlev_cas),thl_prof_cas(nlev_cas) 891 real qv_prof_cas(nlev_cas),ql_prof_cas(nlev_cas),qi_prof_cas(nlev_cas) 892 real u_prof_cas(nlev_cas),v_prof_cas(nlev_cas) 893 real ug_prof_cas(nlev_cas),vg_prof_cas(nlev_cas), vitw_prof_cas(nlev_cas),omega_prof_cas(nlev_cas) 894 real temp_nudg_prof_cas(nlev_cas),qv_nudg_prof_cas(nlev_cas) 895 real u_nudg_prof_cas(nlev_cas),v_nudg_prof_cas(nlev_cas) 896 897 real du_prof_cas(nlev_cas),hu_prof_cas(nlev_cas),vu_prof_cas(nlev_cas) 898 real dv_prof_cas(nlev_cas),hv_prof_cas(nlev_cas),vv_prof_cas(nlev_cas) 899 real dt_prof_cas(nlev_cas),ht_prof_cas(nlev_cas),vt_prof_cas(nlev_cas),dtrad_prof_cas(nlev_cas) 900 real dth_prof_cas(nlev_cas),hth_prof_cas(nlev_cas),vth_prof_cas(nlev_cas) 901 real dq_prof_cas(nlev_cas),hq_prof_cas(nlev_cas),vq_prof_cas(nlev_cas) 902 903 real t_mod_cas(llm),theta_mod_cas(llm),thv_mod_cas(llm),thl_mod_cas(llm) 904 real qv_mod_cas(llm),ql_mod_cas(llm),qi_mod_cas(llm) 905 real u_mod_cas(llm),v_mod_cas(llm) 906 real ug_mod_cas(llm),vg_mod_cas(llm), w_mod_cas(llm),omega_mod_cas(llm) 907 real temp_nudg_mod_cas(llm),qv_nudg_mod_cas(llm) 908 real u_nudg_mod_cas(llm),v_nudg_mod_cas(llm) 909 real du_mod_cas(llm),hu_mod_cas(llm),vu_mod_cas(llm) 910 real dv_mod_cas(llm),hv_mod_cas(llm),vv_mod_cas(llm) 911 real dt_mod_cas(llm),ht_mod_cas(llm),vt_mod_cas(llm),dtrad_mod_cas(llm) 912 real dth_mod_cas(llm),hth_mod_cas(llm),vth_mod_cas(llm) 913 real dq_mod_cas(llm),hq_mod_cas(llm),vq_mod_cas(llm) 873 914 874 915 integer l,k,k1,k2 … … 876 917 877 918 ! do l = 1, llm 878 ! print *,'debut interp , play=',l,play(l)919 ! print *,'debut interp2, play=',l,play(l) 879 920 ! enddo 880 921 ! do l = 1, nlev_cas 881 ! print *,'debut interp , plev_prof_cas=',l,play(l),plev_prof_cas(l)922 ! print *,'debut interp2, plev_prof_cas=',l,play(l),plev_prof_cas(l) 882 923 ! enddo 883 924 … … 887 928 888 929 mxcalc=l 889 ! print *,'debut interp , mxcalc=',mxcalc930 ! print *,'debut interp2, mxcalc=',mxcalc 890 931 k1=0 891 932 k2=0 … … 910 951 frac = (plev_prof_cas(k2)-play(l))/(plev_prof_cas(k2)-plev_prof_cas(k1)) 911 952 t_mod_cas(l)= t_prof_cas(k2) - frac*(t_prof_cas(k2)-t_prof_cas(k1)) 912 th_mod_cas(l)= th_prof_cas(k2) - frac*(th_prof_cas(k2)-th_prof_cas(k1)) 913 if(th_mod_cas(l).NE.0) t_mod_cas(l)= th_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 953 theta_mod_cas(l)= th_prof_cas(k2) - frac*(th_prof_cas(k2)-th_prof_cas(k1)) 954 if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 955 thv_mod_cas(l)= thv_prof_cas(k2) - frac*(thv_prof_cas(k2)-thv_prof_cas(k1)) 914 956 thl_mod_cas(l)= thl_prof_cas(k2) - frac*(thl_prof_cas(k2)-thl_prof_cas(k1)) 915 qt_mod_cas(l)= qt_prof_cas(k2) - frac*(qt_prof_cas(k2)-qt_prof_cas(k1))916 957 qv_mod_cas(l)= qv_prof_cas(k2) - frac*(qv_prof_cas(k2)-qv_prof_cas(k1)) 917 958 ql_mod_cas(l)= ql_prof_cas(k2) - frac*(ql_prof_cas(k2)-ql_prof_cas(k1)) 918 959 qi_mod_cas(l)= qi_prof_cas(k2) - frac*(qi_prof_cas(k2)-qi_prof_cas(k1)) 919 rt_mod_cas(l)= rt_prof_cas(k2) - frac*(rt_prof_cas(k2)-rt_prof_cas(k1))920 rv_mod_cas(l)= rv_prof_cas(k2) - frac*(rv_prof_cas(k2)-rv_prof_cas(k1))921 rl_mod_cas(l)= rl_prof_cas(k2) - frac*(rl_prof_cas(k2)-rl_prof_cas(k1))922 ri_mod_cas(l)= ri_prof_cas(k2) - frac*(ri_prof_cas(k2)-ri_prof_cas(k1))923 rh_mod_cas(l)= rh_prof_cas(k2) - frac*(rh_prof_cas(k2)-rh_prof_cas(k1))924 960 u_mod_cas(l)= u_prof_cas(k2) - frac*(u_prof_cas(k2)-u_prof_cas(k1)) 925 961 v_mod_cas(l)= v_prof_cas(k2) - frac*(v_prof_cas(k2)-v_prof_cas(k1)) 926 w_mod_cas(l)= w_prof_cas(k2) - frac*(w_prof_cas(k2)-w_prof_cas(k1))927 omega_mod_cas(l)= omega_prof_cas(k2) - frac*(omega_prof_cas(k2)-omega_prof_cas(k1))928 962 ug_mod_cas(l)= ug_prof_cas(k2) - frac*(ug_prof_cas(k2)-ug_prof_cas(k1)) 929 963 vg_mod_cas(l)= vg_prof_cas(k2) - frac*(vg_prof_cas(k2)-vg_prof_cas(k1)) 930 964 temp_nudg_mod_cas(l)= temp_nudg_prof_cas(k2) - frac*(temp_nudg_prof_cas(k2)-temp_nudg_prof_cas(k1)) 931 th_nudg_mod_cas(l)= th_nudg_prof_cas(k2) - frac*(th_nudg_prof_cas(k2)-th_nudg_prof_cas(k1))932 thl_nudg_mod_cas(l)= thl_nudg_prof_cas(k2) - frac*(thl_nudg_prof_cas(k2)-thl_nudg_prof_cas(k1))933 qt_nudg_mod_cas(l)= qt_nudg_prof_cas(k2) - frac*(qt_nudg_prof_cas(k2)-qt_nudg_prof_cas(k1))934 965 qv_nudg_mod_cas(l)= qv_nudg_prof_cas(k2) - frac*(qv_nudg_prof_cas(k2)-qv_nudg_prof_cas(k1)) 935 rt_nudg_mod_cas(l)= rt_nudg_prof_cas(k2) - frac*(rt_nudg_prof_cas(k2)-rt_nudg_prof_cas(k1))936 rv_nudg_mod_cas(l)= rv_nudg_prof_cas(k2) - frac*(rv_nudg_prof_cas(k2)-rv_nudg_prof_cas(k1))937 966 u_nudg_mod_cas(l)= u_nudg_prof_cas(k2) - frac*(u_nudg_prof_cas(k2)-u_nudg_prof_cas(k1)) 938 967 v_nudg_mod_cas(l)= v_nudg_prof_cas(k2) - frac*(v_nudg_prof_cas(k2)-v_nudg_prof_cas(k1)) 939 uadv_mod_cas(l)= uadv_prof_cas(k2) - frac*(uadv_prof_cas(k2)-uadv_prof_cas(k1)) 940 vadv_mod_cas(l)= vadv_prof_cas(k2) - frac*(vadv_prof_cas(k2)-vadv_prof_cas(k1)) 941 tadv_mod_cas(l)= tadv_prof_cas(k2) - frac*(tadv_prof_cas(k2)-tadv_prof_cas(k1)) 942 thadv_mod_cas(l)= thadv_prof_cas(k2) - frac*(thadv_prof_cas(k2)-thadv_prof_cas(k1)) 943 thladv_mod_cas(l)= thladv_prof_cas(k2) - frac*(thladv_prof_cas(k2)-thladv_prof_cas(k1)) 944 qtadv_mod_cas(l)= qtadv_prof_cas(k2) - frac*(qtadv_prof_cas(k2)-qtadv_prof_cas(k1)) 945 qvadv_mod_cas(l)= qvadv_prof_cas(k2) - frac*(qvadv_prof_cas(k2)-qvadv_prof_cas(k1)) 946 rtadv_mod_cas(l)= rtadv_prof_cas(k2) - frac*(rtadv_prof_cas(k2)-rtadv_prof_cas(k1)) 947 rvadv_mod_cas(l)= rvadv_prof_cas(k2) - frac*(rvadv_prof_cas(k2)-rvadv_prof_cas(k1)) 948 trad_mod_cas(l)= trad_prof_cas(k2) - frac*(trad_prof_cas(k2)-trad_prof_cas(k1)) 949 thrad_mod_cas(l)= thrad_prof_cas(k2) - frac*(thrad_prof_cas(k2)-thrad_prof_cas(k1)) 950 thlrad_mod_cas(l)= thlrad_prof_cas(k2) - frac*(thlrad_prof_cas(k2)-thlrad_prof_cas(k1)) 968 w_mod_cas(l)= vitw_prof_cas(k2) - frac*(vitw_prof_cas(k2)-vitw_prof_cas(k1)) 969 omega_mod_cas(l)= omega_prof_cas(k2) - frac*(omega_prof_cas(k2)-omega_prof_cas(k1)) 970 du_mod_cas(l)= du_prof_cas(k2) - frac*(du_prof_cas(k2)-du_prof_cas(k1)) 971 hu_mod_cas(l)= hu_prof_cas(k2) - frac*(hu_prof_cas(k2)-hu_prof_cas(k1)) 972 vu_mod_cas(l)= vu_prof_cas(k2) - frac*(vu_prof_cas(k2)-vu_prof_cas(k1)) 973 dv_mod_cas(l)= dv_prof_cas(k2) - frac*(dv_prof_cas(k2)-dv_prof_cas(k1)) 974 hv_mod_cas(l)= hv_prof_cas(k2) - frac*(hv_prof_cas(k2)-hv_prof_cas(k1)) 975 vv_mod_cas(l)= vv_prof_cas(k2) - frac*(vv_prof_cas(k2)-vv_prof_cas(k1)) 976 dt_mod_cas(l)= dt_prof_cas(k2) - frac*(dt_prof_cas(k2)-dt_prof_cas(k1)) 977 ht_mod_cas(l)= ht_prof_cas(k2) - frac*(ht_prof_cas(k2)-ht_prof_cas(k1)) 978 vt_mod_cas(l)= vt_prof_cas(k2) - frac*(vt_prof_cas(k2)-vt_prof_cas(k1)) 979 dth_mod_cas(l)= dth_prof_cas(k2) - frac*(dth_prof_cas(k2)-dth_prof_cas(k1)) 980 hth_mod_cas(l)= hth_prof_cas(k2) - frac*(hth_prof_cas(k2)-hth_prof_cas(k1)) 981 vth_mod_cas(l)= vth_prof_cas(k2) - frac*(vth_prof_cas(k2)-vth_prof_cas(k1)) 982 dq_mod_cas(l)= dq_prof_cas(k2) - frac*(dq_prof_cas(k2)-dq_prof_cas(k1)) 983 hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1)) 984 vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1)) 985 dtrad_mod_cas(l)= dtrad_prof_cas(k2) - frac*(dtrad_prof_cas(k2)-dtrad_prof_cas(k1)) 951 986 952 987 else !play>plev_prof_cas(1) … … 954 989 k1=1 955 990 k2=2 956 print *,'interp _vert, k1,k2=',plev_prof_cas(k1),plev_prof_cas(k2)991 print *,'interp2_vert, k1,k2=',plev_prof_cas(k1),plev_prof_cas(k2) 957 992 frac1 = (play(l)-plev_prof_cas(k2))/(plev_prof_cas(k1)-plev_prof_cas(k2)) 958 993 frac2 = (play(l)-plev_prof_cas(k1))/(plev_prof_cas(k1)-plev_prof_cas(k2)) 959 994 t_mod_cas(l)= frac1*t_prof_cas(k1) - frac2*t_prof_cas(k2) 960 th_mod_cas(l)= frac1*th_prof_cas(k1) - frac2*th_prof_cas(k2) 961 if(th_mod_cas(l).NE.0) t_mod_cas(l)= th_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 995 theta_mod_cas(l)= frac1*th_prof_cas(k1) - frac2*th_prof_cas(k2) 996 if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 997 thv_mod_cas(l)= frac1*thv_prof_cas(k1) - frac2*thv_prof_cas(k2) 962 998 thl_mod_cas(l)= frac1*thl_prof_cas(k1) - frac2*thl_prof_cas(k2) 963 qt_mod_cas(l)= frac1*qt_prof_cas(k1) - frac2*qt_prof_cas(k2)964 999 qv_mod_cas(l)= frac1*qv_prof_cas(k1) - frac2*qv_prof_cas(k2) 965 1000 ql_mod_cas(l)= frac1*ql_prof_cas(k1) - frac2*ql_prof_cas(k2) 966 1001 qi_mod_cas(l)= frac1*qi_prof_cas(k1) - frac2*qi_prof_cas(k2) 967 rt_mod_cas(l)= frac1*rt_prof_cas(k1) - frac2*rt_prof_cas(k2)968 rv_mod_cas(l)= frac1*rv_prof_cas(k1) - frac2*rv_prof_cas(k2)969 rl_mod_cas(l)= frac1*rl_prof_cas(k1) - frac2*rl_prof_cas(k2)970 ri_mod_cas(l)= frac1*ri_prof_cas(k1) - frac2*ri_prof_cas(k2)971 rh_mod_cas(l)= frac1*rh_prof_cas(k1) - frac2*rh_prof_cas(k2)972 1002 u_mod_cas(l)= frac1*u_prof_cas(k1) - frac2*u_prof_cas(k2) 973 1003 v_mod_cas(l)= frac1*v_prof_cas(k1) - frac2*v_prof_cas(k2) 974 w_mod_cas(l)= frac1*w_prof_cas(k1) - frac2*w_prof_cas(k2)975 omega_mod_cas(l)= frac1*omega_prof_cas(k1) - frac2*omega_prof_cas(k2)976 1004 ug_mod_cas(l)= frac1*ug_prof_cas(k1) - frac2*ug_prof_cas(k2) 977 1005 vg_mod_cas(l)= frac1*vg_prof_cas(k1) - frac2*vg_prof_cas(k2) 978 1006 temp_nudg_mod_cas(l)= frac1*temp_nudg_prof_cas(k1) - frac2*temp_nudg_prof_cas(k2) 979 th_nudg_mod_cas(l)= frac1*th_nudg_prof_cas(k1) - frac2*th_nudg_prof_cas(k2)980 thl_nudg_mod_cas(l)= frac1*thl_nudg_prof_cas(k1) - frac2*thl_nudg_prof_cas(k2)981 qt_nudg_mod_cas(l)= frac1*qt_nudg_prof_cas(k1) - frac2*qt_nudg_prof_cas(k2)982 1007 qv_nudg_mod_cas(l)= frac1*qv_nudg_prof_cas(k1) - frac2*qv_nudg_prof_cas(k2) 983 rt_nudg_mod_cas(l)= frac1*rt_nudg_prof_cas(k1) - frac2*rt_nudg_prof_cas(k2)984 rv_nudg_mod_cas(l)= frac1*rv_nudg_prof_cas(k1) - frac2*rv_nudg_prof_cas(k2)985 1008 u_nudg_mod_cas(l)= frac1*u_nudg_prof_cas(k1) - frac2*u_nudg_prof_cas(k2) 986 1009 v_nudg_mod_cas(l)= frac1*v_nudg_prof_cas(k1) - frac2*v_nudg_prof_cas(k2) 987 uadv_mod_cas(l)= frac1*uadv_prof_cas(k1) - frac2*uadv_prof_cas(k2) 988 vadv_mod_cas(l)= frac1*vadv_prof_cas(k1) - frac2*vadv_prof_cas(k2) 989 tadv_mod_cas(l)= frac1*tadv_prof_cas(k1) - frac2*tadv_prof_cas(k2) 990 thadv_mod_cas(l)= frac1*thadv_prof_cas(k1) - frac2*thadv_prof_cas(k2) 991 thladv_mod_cas(l)= frac1*thladv_prof_cas(k1) - frac2*thladv_prof_cas(k2) 992 qtadv_mod_cas(l)= frac1*qtadv_prof_cas(k1) - frac2*qtadv_prof_cas(k2) 993 qvadv_mod_cas(l)= frac1*qvadv_prof_cas(k1) - frac2*qvadv_prof_cas(k2) 994 rtadv_mod_cas(l)= frac1*rtadv_prof_cas(k1) - frac2*rtadv_prof_cas(k2) 995 rvadv_mod_cas(l)= frac1*rvadv_prof_cas(k1) - frac2*rvadv_prof_cas(k2) 996 trad_mod_cas(l)= frac1*trad_prof_cas(k1) - frac2*trad_prof_cas(k2) 997 thrad_mod_cas(l)= frac1*thrad_prof_cas(k1) - frac2*thrad_prof_cas(k2) 998 thlrad_mod_cas(l)= frac1*thlrad_prof_cas(k1) - frac2*thlrad_prof_cas(k2) 1010 w_mod_cas(l)= frac1*vitw_prof_cas(k1) - frac2*vitw_prof_cas(k2) 1011 omega_mod_cas(l)= frac1*omega_prof_cas(k1) - frac2*omega_prof_cas(k2) 1012 du_mod_cas(l)= frac1*du_prof_cas(k1) - frac2*du_prof_cas(k2) 1013 hu_mod_cas(l)= frac1*hu_prof_cas(k1) - frac2*hu_prof_cas(k2) 1014 vu_mod_cas(l)= frac1*vu_prof_cas(k1) - frac2*vu_prof_cas(k2) 1015 dv_mod_cas(l)= frac1*dv_prof_cas(k1) - frac2*dv_prof_cas(k2) 1016 hv_mod_cas(l)= frac1*hv_prof_cas(k1) - frac2*hv_prof_cas(k2) 1017 vv_mod_cas(l)= frac1*vv_prof_cas(k1) - frac2*vv_prof_cas(k2) 1018 dt_mod_cas(l)= frac1*dt_prof_cas(k1) - frac2*dt_prof_cas(k2) 1019 ht_mod_cas(l)= frac1*ht_prof_cas(k1) - frac2*ht_prof_cas(k2) 1020 vt_mod_cas(l)= frac1*vt_prof_cas(k1) - frac2*vt_prof_cas(k2) 1021 dth_mod_cas(l)= frac1*dth_prof_cas(k1) - frac2*dth_prof_cas(k2) 1022 hth_mod_cas(l)= frac1*hth_prof_cas(k1) - frac2*hth_prof_cas(k2) 1023 vth_mod_cas(l)= frac1*vth_prof_cas(k1) - frac2*vth_prof_cas(k2) 1024 dq_mod_cas(l)= frac1*dq_prof_cas(k1) - frac2*dq_prof_cas(k2) 1025 hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2) 1026 vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2) 1027 dtrad_mod_cas(l)= frac1*dtrad_prof_cas(k1) - frac2*dtrad_prof_cas(k2) 999 1028 1000 1029 endif ! play.le.plev_prof_cas(1) … … 1007 1036 fact = exp(-fact) !jyg 1008 1037 t_mod_cas(l)= t_prof_cas(nlev_cas) !jyg 1009 th_mod_cas(l)= th_prof_cas(nlev_cas) !jyg 1038 theta_mod_cas(l)= th_prof_cas(nlev_cas) !jyg 1039 thv_mod_cas(l)= thv_prof_cas(nlev_cas) !jyg 1010 1040 thl_mod_cas(l)= thl_prof_cas(nlev_cas) !jyg 1011 qt_mod_cas(l)= qt_prof_cas(nlev_cas)*fact !jyg1012 1041 qv_mod_cas(l)= qv_prof_cas(nlev_cas)*fact !jyg 1013 1042 ql_mod_cas(l)= ql_prof_cas(nlev_cas)*fact !jyg 1014 1043 qi_mod_cas(l)= qi_prof_cas(nlev_cas)*fact !jyg 1015 rt_mod_cas(l)= rt_prof_cas(nlev_cas)*fact !jyg1016 rv_mod_cas(l)= rv_prof_cas(nlev_cas)*fact !jyg1017 rl_mod_cas(l)= rl_prof_cas(nlev_cas)*fact !jyg1018 ri_mod_cas(l)= ri_prof_cas(nlev_cas)*fact !jyg1019 rh_mod_cas(l)= rh_prof_cas(nlev_cas)*fact !jyg1020 1044 u_mod_cas(l)= u_prof_cas(nlev_cas)*fact !jyg 1021 1045 v_mod_cas(l)= v_prof_cas(nlev_cas)*fact !jyg 1022 w_mod_cas(l)= 0.0 !jyg1023 omega_mod_cas(l)= 0.0 !jyg1024 1046 ug_mod_cas(l)= ug_prof_cas(nlev_cas) !jyg 1025 1047 vg_mod_cas(l)= vg_prof_cas(nlev_cas) !jyg 1026 1048 temp_nudg_mod_cas(l)= temp_nudg_prof_cas(nlev_cas) !jyg 1027 th_nudg_mod_cas(l)= th_nudg_prof_cas(nlev_cas) !jyg1028 thl_nudg_mod_cas(l)= thl_nudg_prof_cas(nlev_cas) !jyg1029 qt_nudg_mod_cas(l)= qt_nudg_prof_cas(nlev_cas) !jyg1030 1049 qv_nudg_mod_cas(l)= qv_nudg_prof_cas(nlev_cas) !jyg 1031 rt_nudg_mod_cas(l)= rt_nudg_prof_cas(nlev_cas) !jyg1032 rv_nudg_mod_cas(l)= rv_nudg_prof_cas(nlev_cas) !jyg1033 1050 u_nudg_mod_cas(l)= u_nudg_prof_cas(nlev_cas) !jyg 1034 1051 v_nudg_mod_cas(l)= v_nudg_prof_cas(nlev_cas) !jyg 1035 uadv_mod_cas(l)= uadv_prof_cas(nlev_cas) !jyg 1036 vadv_mod_cas(l)= vadv_prof_cas(nlev_cas) !jyg 1037 tadv_mod_cas(l)= tadv_prof_cas(nlev_cas) !jyg 1038 thadv_mod_cas(l)= thadv_prof_cas(nlev_cas) !jyg 1039 thladv_mod_cas(l)= thladv_prof_cas(nlev_cas) !jyg 1040 qtadv_mod_cas(l)= qtadv_prof_cas(nlev_cas) !jyg 1041 qvadv_mod_cas(l)= qvadv_prof_cas(nlev_cas) !jyg 1042 rtadv_mod_cas(l)= rtadv_prof_cas(nlev_cas) !jyg 1043 rvadv_mod_cas(l)= rvadv_prof_cas(nlev_cas) !jyg 1044 trad_mod_cas(l)= trad_prof_cas(nlev_cas)*fact !jyg 1045 thrad_mod_cas(l)= thrad_prof_cas(nlev_cas)*fact !jyg 1046 thlrad_mod_cas(l)= thlrad_prof_cas(nlev_cas)*fact !jyg 1052 thv_mod_cas(l)= thv_prof_cas(nlev_cas) !jyg 1053 w_mod_cas(l)= 0.0 !jyg 1054 omega_mod_cas(l)= 0.0 !jyg 1055 du_mod_cas(l)= du_prof_cas(nlev_cas)*fact 1056 hu_mod_cas(l)= hu_prof_cas(nlev_cas)*fact !jyg 1057 vu_mod_cas(l)= vu_prof_cas(nlev_cas)*fact !jyg 1058 dv_mod_cas(l)= dv_prof_cas(nlev_cas)*fact 1059 hv_mod_cas(l)= hv_prof_cas(nlev_cas)*fact !jyg 1060 vv_mod_cas(l)= vv_prof_cas(nlev_cas)*fact !jyg 1061 dt_mod_cas(l)= dt_prof_cas(nlev_cas) 1062 ht_mod_cas(l)= ht_prof_cas(nlev_cas) !jyg 1063 vt_mod_cas(l)= vt_prof_cas(nlev_cas) !jyg 1064 dth_mod_cas(l)= dth_prof_cas(nlev_cas) 1065 hth_mod_cas(l)= hth_prof_cas(nlev_cas) !jyg 1066 vth_mod_cas(l)= vth_prof_cas(nlev_cas) !jyg 1067 dq_mod_cas(l)= dq_prof_cas(nlev_cas)*fact 1068 hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact !jyg 1069 vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact !jyg 1070 dtrad_mod_cas(l)= dtrad_prof_cas(nlev_cas)*fact !jyg 1047 1071 1048 1072 endif ! play … … 1051 1075 1052 1076 return 1053 end SUBROUTINE interp _case_vertical_std1077 end SUBROUTINE interp2_case_vertical_std 1054 1078 !***************************************************************************** 1055 1079 -
LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90
r3680 r3686 49 49 !#include "indicesol.h" 50 50 51 #include "compar1d _std.h"51 #include "compar1d.h" 52 52 #include "flux_arp.h" 53 53 #include "date_cas.h" … … 291 291 !--------------------------------------------------------------------- 292 292 !Al1 293 call conf_unicol _std293 call conf_unicol 294 294 !Al1 moves this gcssold var from common fcg_gcssold to 295 295 Turb_fcg_gcssold = xTurb_fcg_gcssold … … 1033 1033 IF ( play(l) < p_nudging_v .AND. nint(nudging_v) /= 0 ) & 1034 1034 & d_v_nudge(l)=(v_nudg_mod_cas(l)-v(l))/nudging_v 1035 IF ( play(l) < p_nudging_t emp .AND. nint(nudging_temp) /= 0 ) &1036 & d_t_nudge(l)=(temp_nudg_mod_cas(l)-temp(l))/nudging_t emp1035 IF ( play(l) < p_nudging_t .AND. nint(nudging_t) /= 0 ) & 1036 & d_t_nudge(l)=(temp_nudg_mod_cas(l)-temp(l))/nudging_t 1037 1037 IF ( play(l) < p_nudging_qv .AND. nint(nudging_qv) /= 0 ) & 1038 1038 & d_q_nudge(l,1)=(qv_nudg_mod_cas(l)-q(l,1))/nudging_qv 1039 IF ((adv_temp.eq.1) .and. (forc_w.eq.0)) then1040 d_t_adv(l)=alpha*omega(l)/rcpd+dt_mod_cas(l)1041 ELSE IF ((adv_temp.eq.1) .and. (forc_w.eq.1)) then1042 d_t_adv(l)=alpha*omega(l)/rcpd+ht_mod_cas(l)-d_t_dyn_z(l)1043 ENDIF1044 1045 1039 ENDDO 1046 1040
Note: See TracChangeset
for help on using the changeset viewer.