Changeset 5158 for LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad.v1.5.1/radiation_spectral_definition.F90
- Timestamp:
- Aug 2, 2024, 2:12:03 PM (7 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad.v1.5.1/radiation_spectral_definition.F90
r4489 r5158 170 170 else 171 171 find_wavenumber = 1 172 dowhile (wavenumber > this%wavenumber2(find_wavenumber) &172 DO while (wavenumber > this%wavenumber2(find_wavenumber) & 173 173 & .and. find_wavenumber < this%nwav) 174 174 find_wavenumber = find_wavenumber + 1 … … 244 244 & temperature) 245 245 246 dojband = 1,this%nband246 DO jband = 1,this%nband 247 247 weight = 0.0_jprb 248 dojwav = 1,nwav248 DO jwav = 1,nwav 249 249 ! Work out wavenumber range for which this cloud wavenumber 250 250 ! will be applicable … … 281 281 ! Find interpolating points 282 282 iwav = 2 283 dowhile (wavenumber(iwav) < this%wavenumber2_band(jband))283 DO while (wavenumber(iwav) < this%wavenumber2_band(jband)) 284 284 iwav = iwav+1 285 285 end do … … 314 314 mapping = 0.0_jprb 315 315 ! Loop over wavenumbers representing cloud 316 dojwav = 1,nwav316 DO jwav = 1,nwav 317 317 ! Clear the weights. The weight says for one wavenumber in the 318 318 ! cloud file, what is its fractional contribution to each of … … 356 356 & / (this%wavenumber2(isd1)-this%wavenumber1(isd1)) 357 357 if (isd1-isd0 > 1) then 358 doisd = isd0+1,isd1-1358 DO isd = isd0+1,isd1-1 359 359 ! Intermediate trapezia 360 360 weight(isd) = 0.5_jprb * (this%wavenumber1(isd)+this%wavenumber2(isd) & … … 403 403 & / (this%wavenumber2(isd1)-this%wavenumber1(isd1)) 404 404 if (isd2-isd1 > 1) then 405 doisd = isd1+1,isd2-1405 DO isd = isd1+1,isd2-1 406 406 ! Intermediate trapezia 407 407 weight(isd) = weight(isd) + 0.5_jprb * (2.0_jprb*wavenum2 & … … 424 424 weight = weight * planck_weight 425 425 426 dojg = 1,this%ng426 DO jg = 1,this%ng 427 427 mapping(jg, jwav) = sum(weight * this%gpoint_fraction(:,jg)) 428 428 end do … … 434 434 435 435 ! Normalize mapping matrix 436 dojg = 1,this%ng436 DO jg = 1,this%ng 437 437 mapping(jg,:) = mapping(jg,:) * (1.0_jprb/sum(mapping(jg,:))) 438 438 end do … … 548 548 ! Check wavelength is monotonically increasing 549 549 if (ninterval > 2) then 550 dojint = 2,ninterval-1550 DO jint = 2,ninterval-1 551 551 if (wavelength_bound(jint) <= wavelength_bound(jint-1)) then 552 552 write(nulerr, '(a)') '*** Error: wavelength bounds must be monotonically increasing' … … 568 568 end if 569 569 570 dojband = 1,this%nband571 dojint = 1,ninterval570 DO jband = 1,this%nband 571 DO jint = 1,ninterval 572 572 if (jint == 1) then 573 573 ! First input interval in wavelength space: lower … … 643 643 644 644 ! All bounded intervals 645 dojint = 2,ninterval-1645 DO jint = 2,ninterval-1 646 646 wavenumber1_bound = 0.01_jprb / wavelength_bound(jint) 647 647 wavenumber2_bound = 0.01_jprb / wavelength_bound(jint-1) … … 661 661 end if 662 662 663 dojg = 1,this%ng664 dojin = 1,ninput663 DO jg = 1,this%ng 664 DO jin = 1,ninput 665 665 mapping(jin,jg) = sum(this%gpoint_fraction(:,jg) * planck, & 666 666 & mask=(i_input==jin)) … … 675 675 if (.not. use_fluxes_local) then 676 676 ! Normalize mapping matrix 677 dojg = 1,size(mapping,dim=2)677 DO jg = 1,size(mapping,dim=2) 678 678 mapping(:,jg) = mapping(:,jg) * (1.0_jprb/sum(mapping(:,jg))) 679 679 end do … … 736 736 is_band_unassigned = .true. 737 737 738 dojint = 1,ninterval738 DO jint = 1,ninterval 739 739 inext = minloc(wavelength1, dim=1, mask=is_band_unassigned) 740 740 if (jint > 1) then … … 782 782 write(nulout, '(a,i0,a,i0,a)') ' Mapping from ', nin, ' values to ', nout, ' bands (wavenumber ranges in cm-1)' 783 783 if (nout <= 40) then 784 dojout = 1,nout784 DO jout = 1,nout 785 785 write(nulout,'(i6,a,i6,a)',advance='no') nint(this%wavenumber1_band(jout)), ' to', & 786 786 & nint(this%wavenumber2_band(jout)), ':' 787 dojin = 1,nin787 DO jin = 1,nin 788 788 write(nulout,'(f5.2)',advance='no') mapping(jin,jout) 789 789 end do … … 791 791 end do 792 792 else 793 dojout = 1,30793 DO jout = 1,30 794 794 write(nulout,'(i6,a,i6,a)',advance='no') nint(this%wavenumber1_band(jout)), ' to', & 795 795 & nint(this%wavenumber2_band(jout)), ':' 796 dojin = 1,nin796 DO jin = 1,nin 797 797 write(nulout,'(f5.2)',advance='no') mapping(jin,jout) 798 798 end do … … 802 802 write(nulout,'(i6,a,i6,a)',advance='no') nint(this%wavenumber1_band(nout)), ' to', & 803 803 & nint(this%wavenumber2_band(nout)), ':' 804 dojin = 1,nin804 DO jin = 1,nin 805 805 write(nulout,'(f5.2)',advance='no') mapping(jin,nout) 806 806 end do … … 810 810 write(nulout, '(a,i0,a,i0,a)') ' Mapping from ', nin, ' values to ', nout, ' g-points' 811 811 if (nout <= 40) then 812 dojout = 1,nout812 DO jout = 1,nout 813 813 write(nulout,'(i3,a)',advance='no') jout, ':' 814 dojin = 1,nin814 DO jin = 1,nin 815 815 write(nulout,'(f5.2)',advance='no') mapping(jin,jout) 816 816 end do … … 818 818 end do 819 819 else 820 dojout = 1,30820 DO jout = 1,30 821 821 write(nulout,'(i3,a)',advance='no') jout, ':' 822 dojin = 1,nin822 DO jin = 1,nin 823 823 write(nulout,'(f5.2)',advance='no') mapping(jin,jout) 824 824 end do … … 827 827 write(nulout,'(a)') ' ...' 828 828 write(nulout,'(i3,a)',advance='no') nout, ':' 829 dojin = 1,nin829 DO jin = 1,nin 830 830 write(nulout,'(f5.2)',advance='no') mapping(jin,nout) 831 831 end do
Note: See TracChangeset
for help on using the changeset viewer.