Changeset 5101 for LMDZ6/branches/Amaury_dev/libf/dyn3d_common
- Timestamp:
- Jul 23, 2024, 8:22:55 AM (4 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/dyn3d_common
- Files:
-
- 26 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/advn.F
r5099 r5101 99 99 enddo 100 100 101 c callminmaxq(zq,qmin,qmax,'avant vlx ')102 calladvnqx(zq,zqg,zqd)103 calladvnx(zq,zqg,zqd,zm,mu,mode)104 calladvnqy(zq,zqs,zqn)105 calladvny(zq,zqs,zqn,zm,mv)106 calladvnqz(zq,zqh,zqb)107 calladvnz(zq,zqh,zqb,zm,mw)108 c callvlz(zq,0.,zm,mw)109 calladvnqy(zq,zqs,zqn)110 calladvny(zq,zqs,zqn,zm,mv)111 calladvnqx(zq,zqg,zqd)112 calladvnx(zq,zqg,zqd,zm,mu,mode)113 c callminmaxq(zq,qmin,qmax,'apres vlx ')101 c CALL minmaxq(zq,qmin,qmax,'avant vlx ') 102 CALL advnqx(zq,zqg,zqd) 103 CALL advnx(zq,zqg,zqd,zm,mu,mode) 104 CALL advnqy(zq,zqs,zqn) 105 CALL advny(zq,zqs,zqn,zm,mv) 106 CALL advnqz(zq,zqh,zqb) 107 CALL advnz(zq,zqh,zqb,zm,mw) 108 c CALL vlz(zq,0.,zm,mw) 109 CALL advnqy(zq,zqs,zqn) 110 CALL advny(zq,zqs,zqn,zm,mv) 111 CALL advnqx(zq,zqg,zqd) 112 CALL advnx(zq,zqg,zqd,zm,mu,mode) 113 c CALL minmaxq(zq,qmin,qmax,'apres vlx ') 114 114 115 115 do l=1,llm -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/conf_planete.F90
r5099 r5101 81 81 ! Intrinsic heat flux (default: none) (only used if planet_type="giant") 82 82 ihf = 0. 83 callgetin('ihf',ihf)83 CALL getin('ihf',ihf) 84 84 85 85 END SUBROUTINE conf_planete -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/control_mod.F90
r5099 r5101 16 16 INTEGER,SAVE :: iapp_tracvl ! apply (cumulated) traceur advection every 17 17 ! iapp_tracvl dynamical steps 18 INTEGER,SAVE :: nsplit_phys ! number of sub-cycle steps in callto physics18 INTEGER,SAVE :: nsplit_phys ! number of sub-cycle steps in CALL to physics 19 19 INTEGER,SAVE :: iconser 20 20 INTEGER,SAVE :: iecri 21 21 INTEGER,SAVE :: dissip_period ! apply dissipation every dissip_period 22 22 ! dynamical step 23 INTEGER,SAVE :: iphysiq ! callphysics every iphysiq dynamical steps23 INTEGER,SAVE :: iphysiq ! CALL physics every iphysiq dynamical steps 24 24 INTEGER,SAVE :: iecrimoy 25 25 INTEGER,SAVE :: dayref -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/diagedyn.F
r5099 r5101 52 52 c====================================================================== 53 53 54 USE control_mod, ONLY 54 USE control_mod, ONLY: planet_type 55 55 56 56 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/disvert.F90
r5099 r5101 64 64 65 65 vert_sampling = merge("strato", "tropo ", ok_strato) ! default value 66 callgetin('vert_sampling', vert_sampling)66 CALL getin('vert_sampling', vert_sampling) 67 67 WRITE(lunout,*) TRIM(modname)//' vert_sampling = ' // vert_sampling 68 68 if (llm==39 .and. vert_sampling=="strato") then -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/disvert_noterre.F
r5093 r5101 181 181 DO l = 1, llm 182 182 183 callsig_hybrid(sig(l),pa,preff,newsig)183 CALL sig_hybrid(sig(l),pa,preff,newsig) 184 184 bp(l) = EXP( 1. - 1./(newsig**2) ) 185 185 ap(l) = pa * (newsig - bp(l) ) -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/exner_hyb_m.F90
r5099 r5101 60 60 if (llm==1) then 61 61 if (kappa/=1) then 62 callabort_gcm(modname, &62 CALL abort_gcm(modname, & 63 63 "kappa!=1 , but running in Shallow Water mode!!",42) 64 64 endif 65 65 if (cpp/=r) then 66 callabort_gcm(modname, &66 CALL abort_gcm(modname, & 67 67 "cpp!=r , but running in Shallow Water mode!!",42) 68 68 endif -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/exner_milieu_m.F90
r5099 r5101 57 57 if (llm==1) then 58 58 if (kappa/=1) then 59 callabort_gcm(modname, &59 CALL abort_gcm(modname, & 60 60 "kappa!=1 , but running in Shallow Water mode!!",42) 61 61 endif 62 62 if (cpp/=r) then 63 callabort_gcm(modname, &63 CALL abort_gcm(modname, & 64 64 "cpp!=r , but running in Shallow Water mode!!",42) 65 65 endif -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/extrapol.F
r5099 r5101 150 150 C 151 151 C* Not enough points around point P are unmasked; interpolation on P 152 C will be done in a future callto extrap.152 C will be done in a future CALL to extrap. 153 153 C 154 154 IF (inbor >= knbor) THEN -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/fxhyp_m.F90
r5086 r5101 172 172 Xf(2 * nmax) = pi_d 173 173 174 callinvert_zoom_x(xf, xtild, Xprimt, rlonm025(:iim), &174 CALL invert_zoom_x(xf, xtild, Xprimt, rlonm025(:iim), & 175 175 xprimm025(:iim), xuv = - 0.25_k8) 176 callinvert_zoom_x(xf, xtild, Xprimt, rlonv(:iim), xprimv(:iim), &176 CALL invert_zoom_x(xf, xtild, Xprimt, rlonv(:iim), xprimv(:iim), & 177 177 xuv = 0._k8) 178 callinvert_zoom_x(xf, xtild, Xprimt, rlonu(:iim), xprimu(:iim), &178 CALL invert_zoom_x(xf, xtild, Xprimt, rlonu(:iim), xprimu(:iim), & 179 179 xuv = 0.5_k8) 180 callinvert_zoom_x(xf, xtild, Xprimt, rlonp025(:iim), &180 CALL invert_zoom_x(xf, xtild, Xprimt, rlonp025(:iim), & 181 181 xprimp025(:iim), xuv = 0.25_k8) 182 182 end if test_grossismx … … 211 211 END IF 212 212 213 callprincipal_cshift(is2, rlonm025, xprimm025)214 callprincipal_cshift(is2, rlonv, xprimv)215 callprincipal_cshift(is2, rlonu, xprimu)216 callprincipal_cshift(is2, rlonp025, xprimp025)213 CALL principal_cshift(is2, rlonm025, xprimm025) 214 CALL principal_cshift(is2, rlonv, xprimv) 215 CALL principal_cshift(is2, rlonu, xprimu) 216 CALL principal_cshift(is2, rlonp025, xprimp025) 217 217 218 218 forall (i = 1: iim) d_rlonv(i) = rlonv(i + 1) - rlonv(i) -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/grilles_gcm_netcdf_sub.F90
r5100 r5101 182 182 status=nf90_put_att(ncid_out,area_id,'long_name','gridcell area') 183 183 ! land-sea mask (nearest integer approx) 184 status = nf90_def_var(ncid_out,'mask', NF90_INT,out_dim,mask_id)184 status = nf90_def_var(ncid_out,'mask',nf90_int,out_dim,mask_id) 185 185 CALL handle_err(status) 186 186 status=nf90_put_att(ncid_out,mask_id,'long_name','land-sea mask (nINT approx)') -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/infotrac.F90
r5099 r5101 3 3 MODULE infotrac 4 4 5 USE strings_mod, ONLY 6 USE readTracFiles_mod, ONLY 5 USE strings_mod, ONLY: msg, fmsg, maxlen, cat, dispTable, int2str, bool2str, strStack, strParse 6 USE readTracFiles_mod, ONLY: trac_type, readTracersFiles, tracers, setGeneration, itZonIso, nzone, tran0, isoZone, & 7 7 delPhase, niso, getKey, isot_type, processIsotopes, isotope, maxTableWidth, iqIsoPha, nphas, ixIso, isoPhas, & 8 8 addPhase, iH2O, addKey, isoSelect, testTracersFiles, isoKeys, indexUpdate, iqWIsoPha, nbIso, ntiso, isoName, isoCheck … … 113 113 114 114 SUBROUTINE init_infotrac 115 USE control_mod, ONLY 115 USE control_mod, ONLY: planet_type 116 116 #ifdef REPROBUS 117 117 USE CHEM_REP, ONLY: Init_chem_rep_trac 118 118 #endif 119 USE lmdz_cppkeys_wrapper, ONLY 119 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_STRATAER 120 120 IMPLICIT NONE 121 121 !============================================================================================================================== -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/iniconst.F90
r5099 r5101 64 64 endif 65 65 ! but user can also specify using one or the other in run.def: 66 callgetin('disvert_type',disvert_type)66 CALL getin('disvert_type',disvert_type) 67 67 write(lunout,*) trim(modname),': disvert_type=',disvert_type 68 68 69 69 pressure_exner = disvert_type == 1 ! default value 70 callgetin('pressure_exner', pressure_exner)70 CALL getin('pressure_exner', pressure_exner) 71 71 72 72 if (disvert_type==1) then 73 73 ! standard case for Earth (automatic generation of levels) 74 calldisvert()74 CALL disvert() 75 75 else if (disvert_type==2) then 76 76 ! standard case for planets (levels generated using z2sig.def file) 77 calldisvert_noterre77 CALL disvert_noterre 78 78 else 79 79 write(abort_message,*) "Wrong value for disvert_type: ", disvert_type 80 callabort_gcm(modname,abort_message,0)80 CALL abort_gcm(modname,abort_message,0) 81 81 endif 82 82 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/inidissip.F90
r5099 r5101 11 11 ! ------------- 12 12 13 USE control_mod, only: dissip_period,iperiod13 USE control_mod, ONLY: dissip_period,iperiod 14 14 USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, & 15 15 dtdiss, dtvr, rad … … 79 79 write(lunout,*)' Inidissip zh min max ',zhmin,zhmax 80 80 abort_message='probleme generateur alleatoire dans inidissip' 81 callabort_gcm('inidissip',abort_message,1)81 CALL abort_gcm('inidissip',abort_message,1) 82 82 ENDIF 83 83 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/initdynav.F90
r4046 r5101 6 6 USE IOIPSL 7 7 #endif 8 USE infotrac, ONLY 9 use com_io_dyn_mod, only: histaveid,histvaveid,histuaveid, &8 USE infotrac, ONLY: nqtot 9 use com_io_dyn_mod, ONLY: histaveid,histvaveid,histuaveid, & 10 10 dynhistave_file,dynhistvave_file,dynhistuave_file 11 11 USE comconst_mod, ONLY: pi … … 83 83 ! Restriction de IOIPSL: seulement 2 coordonnees dans le meme fichier 84 84 ! Grille Scalaire 85 callhistbeg(dynhistave_file, iip1, rlong(:,1), jjp1, rlat(1,:), &85 CALL histbeg(dynhistave_file, iip1, rlong(:,1), jjp1, rlat(1,:), & 86 86 1, iip1, 1, jjp1, & 87 87 tau0, zjulian, tstep, thoriid,histaveid) … … 98 98 enddo 99 99 100 callhistbeg(dynhistvave_file, iip1, rlong(:,1), jjm, rlat(1,:), &100 CALL histbeg(dynhistvave_file, iip1, rlong(:,1), jjm, rlat(1,:), & 101 101 1, iip1, 1, jjm, & 102 102 tau0, zjulian, tstep, vhoriid,histvaveid) … … 109 109 enddo 110 110 111 callhistbeg(dynhistuave_file, iip1, rlong(:,1),jjp1, rlat(1,:), &111 CALL histbeg(dynhistuave_file, iip1, rlong(:,1),jjp1, rlat(1,:), & 112 112 1, iip1, 1, jjp1, & 113 113 tau0, zjulian, tstep, uhoriid,histuaveid) … … 115 115 ! Appel a histvert pour la grille verticale 116 116 117 callhistvert(histaveid,'presnivs','Niveaux Pression approximatifs','mb', &117 CALL histvert(histaveid,'presnivs','Niveaux Pression approximatifs','mb', & 118 118 llm, presnivs/100., zvertiid,'down') 119 callhistvert(histuaveid,'presnivs','Niveaux Pression approximatifs','mb', &119 CALL histvert(histuaveid,'presnivs','Niveaux Pression approximatifs','mb', & 120 120 llm, presnivs/100., zvertiid,'down') 121 callhistvert(histvaveid,'presnivs','Niveaux Pression approximatifs','mb', &121 CALL histvert(histvaveid,'presnivs','Niveaux Pression approximatifs','mb', & 122 122 llm, presnivs/100., zvertiid,'down') 123 123 … … 126 126 ! Vents U 127 127 128 callhistdef(histuaveid, 'u', 'vent u moyen ', &128 CALL histdef(histuaveid, 'u', 'vent u moyen ', & 129 129 'm/s', iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, & 130 130 32, 'ave(X)', t_ops, t_wrt) … … 132 132 ! Vents V 133 133 134 callhistdef(histvaveid, 'v', 'vent v moyen', &134 CALL histdef(histvaveid, 'v', 'vent v moyen', & 135 135 'm/s', iip1, jjm, vhoriid, llm, 1, llm, zvertiid, & 136 136 32, 'ave(X)', t_ops, t_wrt) … … 139 139 ! Temperature 140 140 141 callhistdef(histaveid, 'temp', 'temperature moyenne', 'K', &141 CALL histdef(histaveid, 'temp', 'temperature moyenne', 'K', & 142 142 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 143 143 32, 'ave(X)', t_ops, t_wrt) … … 145 145 ! Temperature potentielle 146 146 147 callhistdef(histaveid, 'theta', 'temperature potentielle', 'K', &147 CALL histdef(histaveid, 'theta', 'temperature potentielle', 'K', & 148 148 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 149 149 32, 'ave(X)', t_ops, t_wrt) … … 151 151 ! Geopotentiel 152 152 153 callhistdef(histaveid, 'phi', 'geopotentiel moyen', '-', &153 CALL histdef(histaveid, 'phi', 'geopotentiel moyen', '-', & 154 154 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 155 155 32, 'ave(X)', t_ops, t_wrt) … … 158 158 159 159 ! DO iq=1,nqtot 160 ! callhistdef(histaveid, tracers(iq)%name, &160 ! CALL histdef(histaveid, tracers(iq)%name, & 161 161 ! tracers(iq)%longName, '-', & 162 162 ! iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & … … 166 166 ! Masse 167 167 168 callhistdef(histaveid, 'masse', 'masse', 'kg', &168 CALL histdef(histaveid, 'masse', 'masse', 'kg', & 169 169 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 170 170 32, 'ave(X)', t_ops, t_wrt) … … 172 172 ! Pression au sol 173 173 174 callhistdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa', &174 CALL histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa', & 175 175 iip1, jjp1, thoriid, 1, 1, 1, -99, & 176 176 32, 'ave(X)', t_ops, t_wrt) … … 178 178 ! Geopotentiel au sol 179 179 180 ! callhistdef(histaveid, 'phis', 'geopotentiel au sol', '-', &180 ! CALL histdef(histaveid, 'phis', 'geopotentiel au sol', '-', & 181 181 ! iip1, jjp1, thoriid, 1, 1, 1, -99, & 182 182 ! 32, 'ave(X)', t_ops, t_wrt) 183 183 184 callhistend(histaveid)185 callhistend(histuaveid)186 callhistend(histvaveid)184 CALL histend(histaveid) 185 CALL histend(histuaveid) 186 CALL histend(histvaveid) 187 187 #else 188 188 write(lunout,*)"initdynav: Warning this routine should not be", & -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/initfluxsto.F
r5099 r5101 92 92 enddo 93 93 94 callhistbeg(infile, iip1, rlong(:,1), jjp1, rlat(1,:),94 CALL histbeg(infile, iip1, rlong(:,1), jjp1, rlat(1,:), 95 95 . 1, iip1, 1, jjp1, 96 96 . tau0, zjulian, tstep, uhoriid, fileid) … … 108 108 enddo 109 109 110 callhistbeg('fluxstokev.nc', iip1, rlong(:,1), jjm, rlat(1,:),110 CALL histbeg('fluxstokev.nc', iip1, rlong(:,1), jjm, rlat(1,:), 111 111 . 1, iip1, 1, jjm, 112 112 . tau0, zjulian, tstep, vhoriid, filevid) 113 113 114 114 rl(1,1) = 1. 115 callhistbeg('defstoke.nc', 1, rl, 1, rl,115 CALL histbeg('defstoke.nc', 1, rl, 1, rl, 116 116 . 1, 1, 1, 1, 117 117 . tau0, zjulian, tstep, dhoriid, filedid) … … 127 127 enddo 128 128 129 callhisthori(fileid, iip1, rlong, jjp1, rlat, 'scalar',129 CALL histhori(fileid, iip1, rlong, jjp1, rlat, 'scalar', 130 130 . 'Grille points scalaires', thoriid) 131 131 … … 133 133 C Appel a histvert pour la grille verticale 134 134 C 135 callhistvert(fileid, 'sig_s', 'Niveaux sigma',135 CALL histvert(fileid, 'sig_s', 'Niveaux sigma', 136 136 . 'sigma_level', 137 137 . llm, nivsigs, zvertiid) 138 138 C Pour le fichier V 139 callhistvert(filevid, 'sig_s', 'Niveaux sigma',139 CALL histvert(filevid, 'sig_s', 'Niveaux sigma', 140 140 . 'sigma_level', 141 141 . llm, nivsigs, zvertiid) 142 142 c pour le fichier def 143 143 nivd(1) = 1 144 callhistvert(filedid, 'sig_s', 'Niveaux sigma',144 CALL histvert(filedid, 'sig_s', 'Niveaux sigma', 145 145 . 'sigma_level', 146 146 . 1, nivd, dvertiid) … … 173 173 C Masse 174 174 C 175 callhistdef(fileid, 'masse', 'Masse', 'kg',175 CALL histdef(fileid, 'masse', 'Masse', 'kg', 176 176 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 177 177 . 32, 'inst(X)', t_ops, t_wrt) … … 179 179 C Pbaru 180 180 C 181 callhistdef(fileid, 'pbaru', 'flx de masse zonal', 'kg m/s',181 CALL histdef(fileid, 'pbaru', 'flx de masse zonal', 'kg m/s', 182 182 . iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, 183 183 . 32, 'inst(X)', t_ops, t_wrt) … … 186 186 C Pbarv 187 187 C 188 callhistdef(filevid, 'pbarv', 'flx de masse mer', 'kg m/s',188 CALL histdef(filevid, 'pbarv', 'flx de masse mer', 'kg m/s', 189 189 . iip1, jjm, vhoriid, llm, 1, llm, zvertiid, 190 190 . 32, 'inst(X)', t_ops, t_wrt) … … 192 192 C w 193 193 C 194 callhistdef(fileid, 'w', 'flx de masse vert', 'kg m/s',194 CALL histdef(fileid, 'w', 'flx de masse vert', 'kg m/s', 195 195 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 196 196 . 32, 'inst(X)', t_ops, t_wrt) … … 199 199 C Temperature potentielle 200 200 C 201 callhistdef(fileid, 'teta', 'temperature potentielle', '-',201 CALL histdef(fileid, 'teta', 'temperature potentielle', '-', 202 202 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 203 203 . 32, 'inst(X)', t_ops, t_wrt) … … 207 207 C Geopotentiel 208 208 C 209 callhistdef(fileid, 'phi', 'geopotentiel instantane', '-',209 CALL histdef(fileid, 'phi', 'geopotentiel instantane', '-', 210 210 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 211 211 . 32, 'inst(X)', t_ops, t_wrt) … … 213 213 C Fin 214 214 C 215 callhistend(fileid)216 callhistend(filevid)217 callhistend(filedid)215 CALL histend(fileid) 216 CALL histend(filevid) 217 CALL histend(filedid) 218 218 if (ok_sync) then 219 callhistsync(fileid)220 callhistsync(filevid)221 callhistsync(filedid)219 CALL histsync(fileid) 220 CALL histsync(filevid) 221 CALL histsync(filedid) 222 222 endif 223 223 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/inithist.F90
r5100 r5101 1 2 1 ! $Id$ 3 2 4 subroutine inithist(day0,anne0,tstep,t_ops,t_wrt)3 subroutine inithist(day0, anne0, tstep, t_ops, t_wrt) 5 4 6 5 #ifdef CPP_IOIPSL 7 6 USE IOIPSL 8 7 #endif 9 USE infotrac, ONLY : nqtot 10 use com_io_dyn_mod, only : histid,histvid,histuid, & 11 & dynhist_file,dynhistv_file,dynhistu_file 12 USE comconst_mod, ONLY: pi 13 USE comvert_mod, ONLY: presnivs 14 USE temps_mod, ONLY: itau_dyn 15 16 implicit none 8 USE infotrac, ONLY: nqtot 9 use com_io_dyn_mod, ONLY: histid, histvid, histuid, & 10 dynhist_file, dynhistv_file, dynhistu_file 11 USE comconst_mod, ONLY: pi 12 USE comvert_mod, ONLY: presnivs 13 USE temps_mod, ONLY: itau_dyn 17 14 18 C 19 C Routine d'initialisation des ecritures des fichiers histoires LMDZ 20 C au format IOIPSL 21 C 22 C Appels succesifs des routines: histbeg 23 C histhori 24 C histver 25 C histdef 26 C histend 27 C 28 C Entree: 29 C 30 C infile: nom du fichier histoire a creer 31 C day0,anne0: date de reference 32 C tstep: duree du pas de temps en seconde 33 C t_ops: frequence de l'operation pour IOIPSL 34 C t_wrt: frequence d'ecriture sur le fichier 35 C nq: nombre de traceurs 36 C 37 C 38 C L. Fairhead, LMD, 03/99 39 C 40 C ===================================================================== 41 C 42 C Declarations 43 include "dimensions.h" 44 include "paramet.h" 45 include "comgeom.h" 46 include "description.h" 47 include "iniprint.h" 15 implicit none 48 16 49 C Arguments 50 C 51 integer day0, anne0 52 real tstep, t_ops, t_wrt 17 ! 18 ! Routine d'initialisation des ecritures des fichiers histoires LMDZ 19 ! au format IOIPSL 20 ! 21 ! Appels succesifs des routines: histbeg 22 ! histhori 23 ! histver 24 ! histdef 25 ! histend 26 ! 27 ! Entree: 28 ! 29 ! infile: nom du fichier histoire a creer 30 ! day0,anne0: date de reference 31 ! tstep: duree du pas de temps en seconde 32 ! t_ops: frequence de l'operation pour IOIPSL 33 ! t_wrt: frequence d'ecriture sur le fichier 34 ! nq: nombre de traceurs 35 ! 36 ! 37 ! L. Fairhead, LMD, 03/99 38 ! 39 ! ===================================================================== 40 ! 41 ! Declarations 42 include "dimensions.h" 43 include "paramet.h" 44 include "comgeom.h" 45 include "description.h" 46 include "iniprint.h" 47 48 ! Arguments 49 ! 50 integer :: day0, anne0 51 real :: tstep, t_ops, t_wrt 53 52 54 53 #ifdef CPP_IOIPSL 55 ! This routine needs IOIPSL to work56 CVariables locales57 C 58 integertau059 realzjulian60 integeriq61 realrlong(iip1,jjp1), rlat(iip1,jjp1)62 integeruhoriid, vhoriid, thoriid, zvertiid63 integerii,jj64 integerzan, dayref65 C 66 CInitialisations67 C 68 69 C 70 CAppel a histbeg: creation du fichier netcdf et initialisations diverses71 C 54 ! This routine needs IOIPSL to work 55 ! Variables locales 56 ! 57 integer :: tau0 58 real :: zjulian 59 integer :: iq 60 real :: rlong(iip1,jjp1), rlat(iip1,jjp1) 61 integer :: uhoriid, vhoriid, thoriid, zvertiid 62 integer :: ii,jj 63 integer :: zan, dayref 64 ! 65 ! Initialisations 66 ! 67 pi = 4. * atan (1.) 68 ! 69 ! Appel a histbeg: creation du fichier netcdf et initialisations diverses 70 ! 72 71 73 zan = anne0 74 dayref = day0 75 CALL ymds2ju(zan, 1, dayref, 0.0, zjulian) 76 tau0 = itau_dyn 77 78 ! ------------------------------------------------------------- 79 ! Creation des 3 fichiers pour les grilles horizontales U,V,Scal 80 ! ------------------------------------------------------------- 81 !Grille U 82 do jj = 1, jjp1 83 do ii = 1, iip1 84 rlong(ii,jj) = rlonu(ii) * 180. / pi 85 rlat(ii,jj) = rlatu(jj) * 180. / pi 86 enddo 87 enddo 88 89 call histbeg(dynhistu_file, iip1, rlong(:,1), jjp1, rlat(1,:), 90 . 1, iip1, 1, jjp1, 91 . tau0, zjulian, tstep, uhoriid, histuid) 72 zan = anne0 73 dayref = day0 74 CALL ymds2ju(zan, 1, dayref, 0.0, zjulian) 75 tau0 = itau_dyn 92 76 93 ! Grille V 94 do jj = 1, jjm 95 do ii = 1, iip1 96 rlong(ii,jj) = rlonv(ii) * 180. / pi 97 rlat(ii,jj) = rlatv(jj) * 180. / pi 98 enddo 99 enddo 77 ! ------------------------------------------------------------- 78 ! Creation des 3 fichiers pour les grilles horizontales U,V,Scal 79 ! ------------------------------------------------------------- 80 !Grille U 81 do jj = 1, jjp1 82 do ii = 1, iip1 83 rlong(ii,jj) = rlonu(ii) * 180. / pi 84 rlat(ii,jj) = rlatu(jj) * 180. / pi 85 enddo 86 enddo 100 87 101 call histbeg(dynhistv_file, iip1, rlong(:,1), jjm, rlat(1,:),102 . 1, iip1, 1, jjm,103 . tau0, zjulian, tstep, vhoriid, histvid)88 CALL histbeg(dynhistu_file, iip1, rlong(:,1), jjp1, rlat(1,:), & 89 1, iip1, 1, jjp1, & 90 tau0, zjulian, tstep, uhoriid, histuid) 104 91 105 !Grille Scalaire 106 do jj = 1, jjp1107 108 109 rlat(ii,jj) = rlatu(jj) * 180. / pi110 111 92 ! Grille V 93 do jj = 1, jjm 94 do ii = 1, iip1 95 rlong(ii,jj) = rlonv(ii) * 180. / pi 96 rlat(ii,jj) = rlatv(jj) * 180. / pi 97 enddo 98 enddo 112 99 113 call histbeg(dynhist_file, iip1, rlong(:,1), jjp1, rlat(1,:), 114 . 1, iip1, 1, jjp1, 115 . tau0, zjulian, tstep, thoriid, histid) 116 ! ------------------------------------------------------------- 117 C Appel a histvert pour la grille verticale 118 ! ------------------------------------------------------------- 119 call histvert(histid, 'presnivs', 'Niveaux pression','mb', 120 . llm, presnivs/100., zvertiid,'down') 121 call histvert(histvid, 'presnivs', 'Niveaux pression','mb', 122 . llm, presnivs/100., zvertiid,'down') 123 call histvert(histuid, 'presnivs', 'Niveaux pression','mb', 124 . llm, presnivs/100., zvertiid,'down') 125 C 126 ! ------------------------------------------------------------- 127 C Appels a histdef pour la definition des variables a sauvegarder 128 ! ------------------------------------------------------------- 129 C 130 C Vents U 131 C 132 call histdef(histuid, 'u', 'vent u', 'm/s', 133 . iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, 134 . 32, 'inst(X)', t_ops, t_wrt) 135 C 136 C Vents V 137 C 138 call histdef(histvid, 'v', 'vent v', 'm/s', 139 . iip1, jjm, vhoriid, llm, 1, llm, zvertiid, 140 . 32, 'inst(X)', t_ops, t_wrt) 100 CALL histbeg(dynhistv_file, iip1, rlong(:,1), jjm, rlat(1,:), & 101 1, iip1, 1, jjm, & 102 tau0, zjulian, tstep, vhoriid, histvid) 141 103 142 C 143 C Temperature potentielle 144 C 145 call histdef(histid, 'teta', 'temperature potentielle', '-', 146 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 147 . 32, 'inst(X)', t_ops, t_wrt) 148 C 149 C Geopotentiel 150 C 151 call histdef(histid, 'phi', 'geopotentiel', '-', 152 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 153 . 32, 'inst(X)', t_ops, t_wrt) 154 C 155 C Traceurs 156 C 104 !Grille Scalaire 105 do jj = 1, jjp1 106 do ii = 1, iip1 107 rlong(ii,jj) = rlonv(ii) * 180. / pi 108 rlat(ii,jj) = rlatu(jj) * 180. / pi 109 enddo 110 enddo 157 111 158 ! DO iq=1,nqtot 159 ! call histdef(histid, tracers(iq)%name, 160 ! tracers(iq)%longName, '-', 161 ! . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 162 ! . 32, 'inst(X)', t_ops, t_wrt) 163 ! enddo 164 !C 165 C Masse 166 C 167 call histdef(histid, 'masse', 'masse', 'kg', 168 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 169 . 32, 'inst(X)', t_ops, t_wrt) 170 C 171 C Pression au sol 172 C 173 call histdef(histid, 'ps', 'pression naturelle au sol', 'Pa', 174 . iip1, jjp1, thoriid, 1, 1, 1, -99, 175 . 32, 'inst(X)', t_ops, t_wrt) 176 C 177 C Geopotentiel au sol 178 !C 179 ! call histdef(histid, 'phis', 'geopotentiel au sol', '-', 180 ! . iip1, jjp1, thoriid, 1, 1, 1, -99, 181 ! . 32, 'inst(X)', t_ops, t_wrt) 182 !C 183 C Fin 184 C 185 call histend(histid) 186 call histend(histuid) 187 call histend(histvid) 112 CALL histbeg(dynhist_file, iip1, rlong(:,1), jjp1, rlat(1,:), & 113 1, iip1, 1, jjp1, & 114 tau0, zjulian, tstep, thoriid, histid) 115 ! ------------------------------------------------------------- 116 ! Appel a histvert pour la grille verticale 117 ! ------------------------------------------------------------- 118 CALL histvert(histid, 'presnivs', 'Niveaux pression','mb', & 119 llm, presnivs/100., zvertiid,'down') 120 CALL histvert(histvid, 'presnivs', 'Niveaux pression','mb', & 121 llm, presnivs/100., zvertiid,'down') 122 CALL histvert(histuid, 'presnivs', 'Niveaux pression','mb', & 123 llm, presnivs/100., zvertiid,'down') 124 ! 125 ! ------------------------------------------------------------- 126 ! Appels a histdef pour la definition des variables a sauvegarder 127 ! ------------------------------------------------------------- 128 ! 129 ! Vents U 130 ! 131 CALL histdef(histuid, 'u', 'vent u', 'm/s', & 132 iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, & 133 32, 'inst(X)', t_ops, t_wrt) 134 ! 135 ! Vents V 136 ! 137 CALL histdef(histvid, 'v', 'vent v', 'm/s', & 138 iip1, jjm, vhoriid, llm, 1, llm, zvertiid, & 139 32, 'inst(X)', t_ops, t_wrt) 140 141 ! 142 ! Temperature potentielle 143 ! 144 CALL histdef(histid, 'teta', 'temperature potentielle', '-', & 145 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 146 32, 'inst(X)', t_ops, t_wrt) 147 ! 148 ! Geopotentiel 149 ! 150 CALL histdef(histid, 'phi', 'geopotentiel', '-', & 151 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 152 32, 'inst(X)', t_ops, t_wrt) 153 ! 154 ! Traceurs 155 ! 156 157 ! DO iq=1,nqtot 158 ! CALL histdef(histid, tracers(iq)%name, 159 ! tracers(iq)%longName, '-', 160 ! . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 161 ! . 32, 'inst(X)', t_ops, t_wrt) 162 ! enddo 163 !C 164 ! Masse 165 ! 166 CALL histdef(histid, 'masse', 'masse', 'kg', & 167 iip1, jjp1, thoriid, llm, 1, llm, zvertiid, & 168 32, 'inst(X)', t_ops, t_wrt) 169 ! 170 ! Pression au sol 171 ! 172 CALL histdef(histid, 'ps', 'pression naturelle au sol', 'Pa', & 173 iip1, jjp1, thoriid, 1, 1, 1, -99, & 174 32, 'inst(X)', t_ops, t_wrt) 175 ! 176 ! Geopotentiel au sol 177 !C 178 ! CALL histdef(histid, 'phis', 'geopotentiel au sol', '-', 179 ! . iip1, jjp1, thoriid, 1, 1, 1, -99, 180 ! . 32, 'inst(X)', t_ops, t_wrt) 181 !C 182 ! Fin 183 ! 184 CALL histend(histid) 185 CALL histend(histuid) 186 CALL histend(histvid) 188 187 #else 189 ! tell the user this routine should be run with ioipsl190 write(lunout,*)"inithist: Warning this routine should not be",191 &" used without ioipsl"188 ! tell the user this routine should be run with ioipsl 189 write(lunout, *)"inithist: Warning this routine should not be", & 190 " used without ioipsl" 192 191 #endif 193 ! of #ifdef CPP_IOIPSL194 195 end 192 ! of #ifdef CPP_IOIPSL 193 return 194 end subroutine inithist -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/inter_barxy_m.F90
r5099 r5101 57 57 "inter_barxy jnterfd") 58 58 jmods = size(champint, 2) 59 callassert(size(champ, 1) == size(dlonid), "inter_barxy size(champ, 1)")60 callassert((/size(rlonimod), size(champint, 1)/) == iim, &59 CALL assert(size(champ, 1) == size(dlonid), "inter_barxy size(champ, 1)") 60 CALL assert((/size(rlonimod), size(champint, 1)/) == iim, & 61 61 "inter_barxy iim") 62 callassert(any(jmods == (/jjm, jjm + 1/)), 'inter_barxy jmods')63 callassert(size(rlatimod) == jjm, "inter_barxy size(rlatimod)")62 CALL assert(any(jmods == (/jjm, jjm + 1/)), 'inter_barxy jmods') 63 CALL assert(size(rlatimod) == jjm, "inter_barxy size(rlatimod)") 64 64 65 65 ! Check decreasing order for "rlatimod": … … 323 323 !------------------------------------ 324 324 325 callassert(size(yjdat) == size(fdat), "inter_bary")325 CALL assert(size(yjdat) == size(fdat), "inter_bary") 326 326 327 327 ! Initialisation des variables -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/pentes_ini.F
r5099 r5101 257 257 enddo 258 258 endif 259 calllimx(s0,sx,sm,pente_max)260 c callminmaxq(zq,1.e33,-1.e33,'avant advx ')261 calladvx( limit,.5*dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf)262 c callminmaxq(zq,1.e33,-1.e33,'avant advy ')259 CALL limx(s0,sx,sm,pente_max) 260 c CALL minmaxq(zq,1.e33,-1.e33,'avant advx ') 261 CALL advx( limit,.5*dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf) 262 c CALL minmaxq(zq,1.e33,-1.e33,'avant advy ') 263 263 if (mode==4) then 264 264 do l=1,llm … … 271 271 enddo 272 272 endif 273 calllimy(s0,sy,sm,pente_max)274 call advy( limit,.5*dtvr,pbarv,sm,s0,sx,sy,sz )275 c callminmaxq(zq,1.e33,-1.e33,'avant advz ')273 CALL limy(s0,sy,sm,pente_max) 274 CALL advy( limit,.5*dtvr,pbarv,sm,s0,sx,sy,sz ) 275 c CALL minmaxq(zq,1.e33,-1.e33,'avant advz ') 276 276 do j=1,jjp1 277 277 do i=1,iip1 … … 280 280 enddo 281 281 enddo 282 calllimz(s0,sz,sm,pente_max)283 calladvz( limit,dtvr,w,sm,s0,sx,sy,sz )282 CALL limz(s0,sz,sm,pente_max) 283 CALL advz( limit,dtvr,w,sm,s0,sx,sy,sz ) 284 284 if (mode==4) then 285 285 do l=1,llm … … 292 292 enddo 293 293 endif 294 calllimy(s0,sy,sm,pente_max)295 call advy( limit,.5*dtvr,pbarv,sm,s0,sx,sy,sz )294 CALL limy(s0,sy,sm,pente_max) 295 CALL advy( limit,.5*dtvr,pbarv,sm,s0,sx,sy,sz ) 296 296 do l=1,llm 297 297 do j=1,jjp1 … … 305 305 306 306 307 c callminmaxq(zq,1.e33,-1.e33,'avant advx ')307 c CALL minmaxq(zq,1.e33,-1.e33,'avant advx ') 308 308 if (mode==4) then 309 309 do l=1,llm … … 316 316 enddo 317 317 endif 318 calllimx(s0,sx,sm,pente_max)319 call advx( limit,.5*dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf)320 c callminmaxq(zq,1.e33,-1.e33,'apres advx ')318 CALL limx(s0,sx,sm,pente_max) 319 CALL advx( limit,.5*dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf) 320 c CALL minmaxq(zq,1.e33,-1.e33,'apres advx ') 321 321 c do l=1,llm 322 322 c do j=1,jjp1 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/ppm3d.F
r5099 r5101 24 24 C 25 25 C Purpose: given horizontal winds on a hybrid sigma-p surfaces, 26 C one callto tpcore updates the 3-D mixing ratio26 C one CALL to tpcore updates the 3-D mixing ratio 27 27 C fields one time step (NDT). [vertical mass flux is computed 28 28 C internally consistent with the discretized hydrostatic mass … … 355 355 if(IGD==0) then 356 356 C Compute analytic cosine at cell edges 357 callcosa(cosp,cose,JNP,PI,DP)357 CALL cosa(cosp,cose,JNP,PI,DP) 358 358 else 359 359 C Define cosine consistent with GEOS-GCM (using dycore2.0 or later) 360 callcosc(cosp,cose,JNP,PI,DP)360 CALL cosc(cosp,cose,JNP,PI,DP) 361 361 endif 362 362 C … … 455 455 if(IGD==0) then 456 456 C Convert winds on A-Grid to Courant # on C-Grid. 457 callA2C(U(1,1,k),V(1,1,k),IMR,JMR,j1,j2,CRX,CRY,dtdx5,DTDY5)457 CALL A2C(U(1,1,k),V(1,1,k),IMR,JMR,j1,j2,CRX,CRY,dtdx5,DTDY5) 458 458 else 459 459 C Convert winds on C-grid to Courant # … … 674 674 jad = 1 675 675 endif 676 callxadv(IMR,JNP,j1,j2,wk1(1,1,2),UA,JS,JN,IML,DC2,iad)677 callyadv(IMR,JNP,j1,j2,wk1(1,1,1),VA,PV,W,jad)676 CALL xadv(IMR,JNP,j1,j2,wk1(1,1,2),UA,JS,JN,IML,DC2,iad) 677 CALL yadv(IMR,JNP,j1,j2,wk1(1,1,1),VA,PV,W,jad) 678 678 do j=1,JNP 679 679 do i=1,IMR … … 683 683 endif 684 684 C 685 callxtp(IMR,JNP,IML,j1,j2,JN,JS,PU,DQ(1,1,k,IC),wk1(1,1,2)685 CALL xtp(IMR,JNP,IML,j1,j2,JN,JS,PU,DQ(1,1,k,IC),wk1(1,1,2) 686 686 & ,CRX,fx1,xmass,IORD) 687 687 688 callytp(IMR,JNP,j1,j2,acosp,RCAP,DQ(1,1,k,IC),wk1(1,1,1),CRY,688 CALL ytp(IMR,JNP,j1,j2,acosp,RCAP,DQ(1,1,k,IC),wk1(1,1,1),CRY, 689 689 & DC2,ymass,WK1(1,1,3),wk1(1,1,4),WK1(1,1,5),WK1(1,1,6),JORD) 690 690 C … … 746 746 C****6***0*********0*********0*********0*********0*********0**********72 747 747 748 callFZPPM(IMR,JNP,NLAY,j1,DQ(1,1,1,IC),W,Q(1,1,1,IC),WK1,DPI,748 CALL FZPPM(IMR,JNP,NLAY,j1,DQ(1,1,1,IC),W,Q(1,1,1,IC),WK1,DPI, 749 749 & DC2,CRX,CRY,PU,PV,xmass,ymass,delp1,KRD) 750 750 C 751 751 752 if(fill) callqckxyz(DQ(1,1,1,IC),DC2,IMR,JNP,NLAY,j1,j2,752 if(fill) CALL qckxyz(DQ(1,1,1,IC),DC2,IMR,JNP,NLAY,j1,j2, 753 753 & cosp,acosp,.false.,IC,NSTEP) 754 754 C … … 921 921 C****6***0*********0*********0*********0*********0*********0**********72 922 922 C Top & Bot always monotonic 923 calllmtppm(flux(1,1),A6(1,1),AR(1,1),AL(1,1),wk1(1,1),IMR,0)924 calllmtppm(flux(1,NLAY),A6(1,NLAY),AR(1,NLAY),AL(1,NLAY),923 CALL lmtppm(flux(1,1),A6(1,1),AR(1,1),AL(1,1),wk1(1,1),IMR,0) 924 CALL lmtppm(flux(1,NLAY),A6(1,NLAY),AR(1,NLAY),AL(1,NLAY), 925 925 & wk1(1,NLAY),IMR,0) 926 926 C 927 927 C Interior depending on KORD 928 928 if(LMT<=2) 929 & calllmtppm(flux(1,2),A6(1,2),AR(1,2),AL(1,2),wk1(1,2),929 & CALL lmtppm(flux(1,2),A6(1,2),AR(1,2),AL(1,2),wk1(1,2), 930 930 & IMR*(NLAY-2),LMT) 931 931 C … … 1004 1004 END DO 1005 1005 ELSE 1006 callxmist(IMR,IML,Qtmp,DC)1006 CALL xmist(IMR,IML,Qtmp,DC) 1007 1007 DC(0) = DC(IMR) 1008 1008 C … … 1013 1013 END DO 1014 1014 else 1015 callfxppm(IMR,IML,UC(1,j),Qtmp,DC,fx1,IORD)1015 CALL fxppm(IMR,IML,UC(1,j),Qtmp,DC,fx1,IORD) 1016 1016 endif 1017 1017 C … … 1041 1041 END DO 1042 1042 ELSE 1043 callxmist(IMR,IML,Qtmp,DC)1043 CALL xmist(IMR,IML,Qtmp,DC) 1044 1044 C 1045 1045 do i=-IML,0 … … 1132 1132 END DO 1133 1133 C 1134 if(LMT<=2) calllmtppm(DC(1),A6(1),AR(1),AL(1),P(1),IMR,LMT)1134 if(LMT<=2) CALL lmtppm(DC(1),A6(1),AR(1),AL(1),P(1),IMR,LMT) 1135 1135 C 1136 1136 AL(0) = AL(IMR) … … 1189 1189 else 1190 1190 1191 callymist(IMR,JNP,j1,P,DC2,4)1191 CALL ymist(IMR,JNP,j1,P,DC2,4) 1192 1192 C 1193 1193 if(JORD<=0 .or. JORD>=3) then 1194 1194 1195 callfyppm(VC,P,DC2,fx,IMR,JNP,j1,j2,A6,AR,AL,JORD)1195 CALL fyppm(VC,P,DC2,fx,IMR,JNP,j1,j2,A6,AR,AL,JORD) 1196 1196 1197 1197 else … … 1384 1384 END DO 1385 1385 C 1386 if(LMT<=2) calllmtppm(DC(1,j11),A6(1,j11),AR(1,j11)1386 if(LMT<=2) CALL lmtppm(DC(1,j11),A6(1,j11),AR(1,j11) 1387 1387 & ,AL(1,j11),P(1,j11),len,LMT) 1388 1388 C … … 1761 1761 L = 1 1762 1762 icr = 1 1763 callfilns(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,ipy,tiny)1763 CALL filns(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,ipy,tiny) 1764 1764 if(ipy==0) goto 50 1765 callfilew(q(1,1,L),qtmp,IMR,JNP,j1,j2,ipx,tiny)1765 CALL filew(q(1,1,L),qtmp,IMR,JNP,j1,j2,ipx,tiny) 1766 1766 if(ipx==0) goto 50 1767 1767 C 1768 1768 if(cross) then 1769 callfilcr(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,icr,tiny)1769 CALL filcr(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,icr,tiny) 1770 1770 endif 1771 1771 if(icr==0) goto 50 … … 1784 1784 icr = 1 1785 1785 C 1786 callfilns(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,ipy,tiny)1786 CALL filns(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,ipy,tiny) 1787 1787 if(ipy==0) goto 225 1788 callfilew(q(1,1,L),qtmp,IMR,JNP,j1,j2,ipx,tiny)1788 CALL filew(q(1,1,L),qtmp,IMR,JNP,j1,j2,ipx,tiny) 1789 1789 if(ipx==0) go to 225 1790 1790 if(cross) then 1791 callfilcr(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,icr,tiny)1791 CALL filcr(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,icr,tiny) 1792 1792 endif 1793 1793 if(icr==0) goto 225 … … 1815 1815 L = NLAY 1816 1816 C 1817 callfilns(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,ipy,tiny)1817 CALL filns(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,ipy,tiny) 1818 1818 if(ipy==0) goto 911 1819 callfilew(q(1,1,L),qtmp,IMR,JNP,j1,j2,ipx,tiny)1819 CALL filew(q(1,1,L),qtmp,IMR,JNP,j1,j2,ipx,tiny) 1820 1820 if(ipx==0) goto 911 1821 1821 C 1822 callfilcr(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,icr,tiny)1822 CALL filcr(q(1,1,L),IMR,JNP,j1,j2,cosp,acosp,icr,tiny) 1823 1823 if(icr==0) goto 911 1824 1824 C -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/prather.F
r5099 r5101 147 147 c----------------------------------------------------------- 148 148 do indice =1,nt 149 calladvxp( limit,0.5*dt,pbaru,sm,s0,sx,sy,sz149 CALL advxp( limit,0.5*dt,pbaru,sm,s0,sx,sy,sz 150 150 . ,sxx,sxy,sxz,syy,syz,szz,1 ) 151 151 END DO … … 157 157 enddo 158 158 c--------------------------------------------------------- 159 calladvyp( limit,.5*dt*nt,pbarv,sm,s0,sx,sy,sz159 CALL advyp( limit,.5*dt*nt,pbarv,sm,s0,sx,sy,sz 160 160 . ,sxx,sxy,sxz,syy,syz,szz,1 ) 161 161 c--------------------------------------------------------- … … 174 174 enddo 175 175 enddo 176 call advzp( limit,dt*nt,w,sm,s0,sx,sy,sz176 CALL advzp( limit,dt*nt,w,sm,s0,sx,sy,sz 177 177 . ,sxx,sxy,sxz,syy,syz,szz,1 ) 178 178 do l=1,llm … … 186 186 187 187 c--------------------------------------------------------- 188 calladvyp( limit,.5*dt*nt,pbarv,sm,s0,sx,sy,sz188 CALL advyp( limit,.5*dt*nt,pbarv,sm,s0,sx,sy,sz 189 189 . ,sxx,sxy,sxz,syy,syz,szz,1 ) 190 190 c--------------------------------------------------------- … … 204 204 ENDDO 205 205 do indice=1,nt 206 calladvxp( limit,0.5*dt,pbaru,sm,s0,sx,sy,sz206 CALL advxp( limit,0.5*dt,pbaru,sm,s0,sx,sy,sz 207 207 . ,sxx,sxy,sxz,syy,syz,szz,1 ) 208 208 END DO -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/rotatf.F
r5099 r5101 9 9 c a tous les niveaux d'1 vecteur de comp. x et y .. 10 10 c x et y etant des composantes covariantes ... 11 c Only difference with rotat: callto filtreg.11 c Only difference with rotat: CALL to filtreg. 12 12 c******************************************************************** 13 13 c klevel, x et y sont des arguments d'entree pour le s-prog -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/test_period.F
r5099 r5101 9 9 c teta, q , p et phis .......... 10 10 c 11 USE infotrac, ONLY 11 USE infotrac, ONLY: nqtot 12 12 c 13 13 c IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/ugeostr.F90
r5099 r5101 48 48 ENDDO 49 49 ENDDO 50 calldump2d(jjm,llm,um,'Vent-u geostrophique')50 CALL dump2d(jjm,llm,um,'Vent-u geostrophique') 51 51 52 52 ! calcul des champ de vent: -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/write_grads_dyn.h
r5099 r5101 5 5 6 6 string10='dyn' 7 callinigrads(1,iip17 CALL inigrads(1,iip1 8 8 s ,rlonv,180./pi,-180.,180.,jjp1,rlatu,-90.,90.,180./pi 9 9 s ,llm,presnivs,1. -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/writedynav.F90
r4046 r5101 6 6 USE ioipsl 7 7 #endif 8 USE infotrac, ONLY 9 use com_io_dyn_mod, only: histaveid, histvaveid, histuaveid8 USE infotrac, ONLY: nqtot 9 use com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid 10 10 USE comconst_mod, ONLY: cpp 11 11 USE temps_mod, ONLY: itau_dyn … … 71 71 72 72 ! Passage aux composantes naturelles du vent 73 callcovnat(llm, ucov, vcov, unat, vnat)73 CALL covnat(llm, ucov, vcov, unat, vnat) 74 74 75 75 ! Appels a histwrite pour l'ecriture des variables a sauvegarder … … 77 77 ! Vents U 78 78 79 callhistwrite(histuaveid, 'u', itau_w, unat, &79 CALL histwrite(histuaveid, 'u', itau_w, unat, & 80 80 iip1*jjp1*llm, ndexu) 81 81 82 82 ! Vents V 83 83 84 callhistwrite(histvaveid, 'v', itau_w, vnat, &84 CALL histwrite(histvaveid, 'v', itau_w, vnat, & 85 85 iip1*jjm*llm, ndexv) 86 86 87 87 ! Temperature potentielle moyennee 88 88 89 callhistwrite(histaveid, 'theta', itau_w, teta, &89 CALL histwrite(histaveid, 'theta', itau_w, teta, & 90 90 iip1*jjp1*llm, ndexu) 91 91 … … 95 95 tm(ii) = teta(ii) * ppk(ii)/cpp 96 96 enddo 97 callhistwrite(histaveid, 'temp', itau_w, tm, &97 CALL histwrite(histaveid, 'temp', itau_w, tm, & 98 98 iip1*jjp1*llm, ndexu) 99 99 100 100 ! Geopotentiel 101 101 102 callhistwrite(histaveid, 'phi', itau_w, phi, &102 CALL histwrite(histaveid, 'phi', itau_w, phi, & 103 103 iip1*jjp1*llm, ndexu) 104 104 … … 106 106 107 107 ! DO iq=1, nqtot 108 ! callhistwrite(histaveid, tracers(iq)%longName, itau_w, &108 ! CALL histwrite(histaveid, tracers(iq)%longName, itau_w, & 109 109 ! q(:, :, iq), iip1*jjp1*llm, ndexu) 110 110 ! enddo … … 112 112 ! Masse 113 113 114 callhistwrite(histaveid, 'masse', itau_w, masse, &114 CALL histwrite(histaveid, 'masse', itau_w, masse, & 115 115 iip1*jjp1*llm, ndexu) 116 116 117 117 ! Pression au sol 118 118 119 callhistwrite(histaveid, 'ps', itau_w, ps, iip1*jjp1, ndex2d)119 CALL histwrite(histaveid, 'ps', itau_w, ps, iip1*jjp1, ndex2d) 120 120 121 121 ! Geopotentiel au sol 122 122 123 ! callhistwrite(histaveid, 'phis', itau_w, phis, iip1*jjp1, ndex2d)123 ! CALL histwrite(histaveid, 'phis', itau_w, phis, iip1*jjp1, ndex2d) 124 124 125 125 if (ok_sync) then 126 callhistsync(histaveid)127 callhistsync(histvaveid)128 callhistsync(histuaveid)126 CALL histsync(histaveid) 127 CALL histsync(histvaveid) 128 CALL histsync(histuaveid) 129 129 ENDIF 130 130 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/writehist.F
r5099 r5101 7 7 USE ioipsl 8 8 #endif 9 USE infotrac, ONLY 10 use com_io_dyn_mod, only: histid,histvid,histuid9 USE infotrac, ONLY: nqtot 10 use com_io_dyn_mod, ONLY: histid,histvid,histuid 11 11 USE temps_mod, ONLY: itau_dyn 12 12 … … 72 72 itau_w = itau_dyn + time 73 73 ! Passage aux composantes naturelles du vent 74 callcovnat(llm, ucov, vcov, unat, vnat)74 CALL covnat(llm, ucov, vcov, unat, vnat) 75 75 C 76 76 C Appels a histwrite pour l'ecriture des variables a sauvegarder … … 78 78 C Vents U 79 79 C 80 call histwrite(histuid, 'u', itau_w, unat,80 CALL histwrite(histuid, 'u', itau_w, unat, 81 81 . iip1*jjp1*llm, ndexu) 82 82 C 83 83 C Vents V 84 84 C 85 call histwrite(histvid, 'v', itau_w, vnat,85 CALL histwrite(histvid, 'v', itau_w, vnat, 86 86 . iip1*jjm*llm, ndexv) 87 87 … … 89 89 C Temperature potentielle 90 90 C 91 call histwrite(histid, 'teta', itau_w, teta,91 CALL histwrite(histid, 'teta', itau_w, teta, 92 92 . iip1*jjp1*llm, ndexu) 93 93 C 94 94 C Geopotentiel 95 95 C 96 call histwrite(histid, 'phi', itau_w, phi,96 CALL histwrite(histid, 'phi', itau_w, phi, 97 97 . iip1*jjp1*llm, ndexu) 98 98 C … … 100 100 C 101 101 ! DO iq=1,nqtot 102 ! call histwrite(histid, tracers(iq)%longName, itau_w,102 ! CALL histwrite(histid, tracers(iq)%longName, itau_w, 103 103 ! . q(:,:,iq), iip1*jjp1*llm, ndexu) 104 104 ! enddo … … 106 106 C Masse 107 107 C 108 callhistwrite(histid,'masse',itau_w, masse,iip1*jjp1*llm,ndexu)108 CALL histwrite(histid,'masse',itau_w, masse,iip1*jjp1*llm,ndexu) 109 109 C 110 110 C Pression au sol 111 111 C 112 callhistwrite(histid, 'ps', itau_w, ps, iip1*jjp1, ndex2d)112 CALL histwrite(histid, 'ps', itau_w, ps, iip1*jjp1, ndex2d) 113 113 C 114 114 C Geopotentiel au sol 115 115 C 116 ! callhistwrite(histid, 'phis', itau_w, phis, iip1*jjp1, ndex2d)116 ! CALL histwrite(histid, 'phis', itau_w, phis, iip1*jjp1, ndex2d) 117 117 C 118 118 C Fin 119 119 C 120 120 if (ok_sync) then 121 callhistsync(histid)122 callhistsync(histvid)123 callhistsync(histuid)121 CALL histsync(histid) 122 CALL histsync(histvid) 123 CALL histsync(histuid) 124 124 endif 125 125 #else
Note: See TracChangeset
for help on using the changeset viewer.